# A template to structure your Python application
A python project to use as a template when developing a Python application.
## In order to create a Python project with a similar structure you need to do the following:
### The structure of the project should be as follows:
```
project
├── README.md
├── example
│  ├── __init__.py
│  ├── package_1
│  │  ├── __init__.py
│  │  ├── awesome_module.py
│  │  ├── ...
│  │  └── awesome_module_n.py
│  └── package_2
│  ├── __init__.py
│  └── module.py
├── setup.py
└── tests
└── __init__.py
```
### (Optional) Create a Python environment:
* For Python3 users:
* `pip install virtualenv`
* `virtualenv venv_name`
* `source path/to/venv_name activate`
* For Anaconda users:
* `conda create --name conda_env`
* `conda activate conda_env`
* `conda install pip`
### Next you need to create a `setup.py` file in the root folder. It should be similar to the one presented below:
```
from distutils.core import setup
from setuptools import setup, find_packages
setup(
name='example',
version='0.1dev0',
author='Author Name',
author_email='author_email@mail.com',
packages=find_packages(),
long_description=open('README.md').read()
)
```
### You need to create an **`__init__.py`** file in the `/example` directory where you should **import the packages** (i.e. `package_1`, and `package_2`):
```
# example/__init__.py
from . import package_1, package_2
```
### After that, you need to run the `setup.py` as follows:
#### While being in the root of the folder run the following command: `pip install -e .`
An `example.egg-info` directory should now be created in the root directory:
```
project
├── README.md
├── example
│  ├── __init__.py
│  ├── package_1
│  │  ├── __init__.py
│  │  ├── awesome_module.py
│  │  ├── ...
│  │  └── awesome_module_n.py
│  └── package_2
│  ├── __init__.py
│  └── module.py
├── example.egg-info
│ ├── dependency_links.txt
│ ├── PKG_INFO
│ ├── SOURCES.txt
│ └── top_level.txt
├── setup.py
└── tests
└── __init__.py
```
If everything when according to plan, you should be able to use the modules you developed in the `package_1` from the `package_2` directory likewise:
```
# example/package_2/module.py
from example.package_1.awesome_module import hello
```
Raw data
{
"_id": null,
"home_page": "https://google.com",
"name": "paper-lib-collective",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.12,>3.9",
"maintainer_email": null,
"keywords": null,
"author": "Author Name",
"author_email": "author_email@mail.com",
"download_url": "https://files.pythonhosted.org/packages/c6/04/5eefa78c3830a08991f6a14354f5aeb9f57413741bae2b31cd917f986c1d/paper_lib_collective-0.1.tar.gz",
"platform": null,
"description": "# A template to structure your Python application\r\nA python project to use as a template when developing a Python application.\r\n\r\n## In order to create a Python project with a similar structure you need to do the following: \r\n### The structure of the project should be as follows: \r\n```\r\nproject\r\n\u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac README.md\r\n\u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac example\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac __init__.py\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac package_1\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac __init__.py\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac awesome_module.py\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac ...\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac awesome_module_n.py\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac package_2\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac __init__.py\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac module.py\r\n\u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac setup.py\r\n\u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac tests\r\n \u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac __init__.py\r\n```\r\n### (Optional) Create a Python environment: \r\n* For Python3 users: \r\n * `pip install virtualenv`\r\n * `virtualenv venv_name`\r\n * `source path/to/venv_name activate`\r\n* For Anaconda users: \r\n * `conda create --name conda_env`\r\n * `conda activate conda_env`\r\n * `conda install pip`\r\n\r\n### Next you need to create a `setup.py` file in the root folder. It should be similar to the one presented below: \r\n```\r\nfrom distutils.core import setup\r\nfrom setuptools import setup, find_packages\r\n\r\nsetup(\r\n name='example',\r\n version='0.1dev0',\r\n author='Author Name', \r\n author_email='author_email@mail.com',\r\n packages=find_packages(),\r\n long_description=open('README.md').read()\r\n)\r\n```\r\n### You need to create an **`__init__.py`** file in the `/example` directory where you should **import the packages** (i.e. `package_1`, and `package_2`): \r\n```\r\n# example/__init__.py\r\nfrom . import package_1, package_2 \r\n```\r\n\r\n### After that, you need to run the `setup.py` as follows: \r\n#### While being in the root of the folder run the following command: `pip install -e .`\r\nAn `example.egg-info` directory should now be created in the root directory: \r\n```\r\nproject\r\n\u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac README.md\r\n\u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac example\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac __init__.py\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac package_1\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac __init__.py\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac awesome_module.py\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac ...\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac awesome_module_n.py\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac package_2\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac __init__.py\r\n\u00e2\u201d\u201a\u00c2\u00a0\u00c2\u00a0 \u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac module.py\r\n\u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac example.egg-info\r\n\u00e2\u201d\u201a \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac dependency_links.txt\r\n\u00e2\u201d\u201a \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac PKG_INFO\r\n\u00e2\u201d\u201a \u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac SOURCES.txt\r\n\u00e2\u201d\u201a \u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac top_level.txt\r\n\u00e2\u201d\u0153\u00e2\u201d\u20ac\u00e2\u201d\u20ac setup.py\r\n\u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac tests\r\n \u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac __init__.py\r\n```\r\nIf everything when according to plan, you should be able to use the modules you developed in the `package_1` from the `package_2` directory likewise: \r\n\r\n```\r\n# example/package_2/module.py\r\nfrom example.package_1.awesome_module import hello\r\n```\r\n",
"bugtrack_url": null,
"license": "The Unlicense",
"summary": "Collective python packages from papers",
"version": "0.1",
"project_urls": {
"Homepage": "https://google.com"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c6045eefa78c3830a08991f6a14354f5aeb9f57413741bae2b31cd917f986c1d",
"md5": "b4d16d855bc4a3ba5ae6c14d3f7fcd5b",
"sha256": "03b5f5f7919e519024d470cff9666ce225e282f5a2d7b21968090ff60854bdfb"
},
"downloads": -1,
"filename": "paper_lib_collective-0.1.tar.gz",
"has_sig": false,
"md5_digest": "b4d16d855bc4a3ba5ae6c14d3f7fcd5b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.12,>3.9",
"size": 5616,
"upload_time": "2024-04-21T18:42:50",
"upload_time_iso_8601": "2024-04-21T18:42:50.042353Z",
"url": "https://files.pythonhosted.org/packages/c6/04/5eefa78c3830a08991f6a14354f5aeb9f57413741bae2b31cd917f986c1d/paper_lib_collective-0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-21 18:42:50",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "paper-lib-collective"
}