Metadata-Version: 2.1
Name: ScholarCodeCollective
Version: 0.1.1
Summary: A collective library for the code behind several academic papers
Home-page: https://google.com
Author: Author Name
Author-email: author_email@mail.com
License: The Unlicense
Requires-Python: >3.9,<3.12
Description-Content-Type: text/markdown

# 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
```
