Our great sponsors
-
til-page-builder
A command-line tool for authoring "Today I Learned" posts in Markdown, which can be converted to HTML for publishing on the web.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
sampleproject
A sample project that exists for PyPUG's "Tutorial on Packaging and Distributing Projects"
I have published the package to Python Package Index, commonly called PyPi, and in this post, I'll be sharing the steps I had to follow in the process.
I have been working on til-page-builder for this whole semester, and as the term approaches its end, I thought it was a good time to release the project.
from setuptools import setup, find_packages from src.til_page_builder.version import __version__ as version with open("requirements.txt") as f: requirements = f.read().splitlines() setup( name="til_page_builder", version=version, packages=find_packages(), install_requires=requirements, entry_points={ "console_scripts": [ "til_page_builder=til_page_builder.til_builder_main:main", # Adjust 'module_name' and 'main' accordingly ], }, python_requires=">=3.8", classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], author="Amnish Singh Arora", author_email="[email protected]", description="A command-line tool for authoring 'Today I Learned' posts in Markdown, which can be converted to HTML for publishing on the web.", long_description=open("README.md").read(), long_description_content_type="text/markdown", url="https://github.com/pypa/sampleproject", project_urls={ "Homepage": "https://github.com/pypa/sampleproject", "Issues": "https://github.com/pypa/sampleproject/issues", }, )
1. LICENSE: This file contains information about the rights and permissions granted to users regarding the use, modification, distribution, and sharing of the software. I already had an MIT License in my project. 2. pyproject.toml: It is a configuration file typically used for specifying build requirements and backend build systems for Python projects. I was already using this file for Black code formatter configuration. 3. README.md: Used as a documentation file for your project, typically includes project overview, installation instructions and optionally, contribution instructions. 4. example_package_YOUR_USERNAME_HERE: One big change I had to face was restructuring my project, essentially packaging all files in this directory. The name of this directory should be what you want to name your package and shoud not conflict with any of the existing packages. Of course, since its a Python Package, it needs to have an __init__.py. 5. tests/: This is where you put all your unit and integration tests, I think its optional as not all projects will have tests. The rest of the project remains as is.
Related posts
- Let's meet Black: Python Code Formatting
- Auto-formater for Android (Kotlin)
- Lute v3 - installed software for learning foreign languages through reading
- Visual Selection Range Formatting Support for Python files using black formatter
- Python rewrites values in all nested dictionaries, rather than iterating through them uniquely?