Autosave: 2024-08-27 17:00:02
This commit is contained in:
		
							parent
							
								
									6f9f2cac0a
								
							
						
					
					
						commit
						34e8bdc6e0
					
				
					 1 changed files with 70 additions and 3 deletions
				
			
		| 
						 | 
					@ -1,10 +1,77 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
title: Python_application_structure
 | 
					title: Python_application_structure
 | 
				
			||||||
tags: []
 | 
					tags: [python]
 | 
				
			||||||
created: Tuesday, August 27, 2024
 | 
					created: Tuesday, August 27, 2024
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Python_application_structure
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Python application structure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Directory layout
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					src/
 | 
				
			||||||
 | 
					    cli.py OR app.py
 | 
				
			||||||
 | 
					    constants.py
 | 
				
			||||||
 | 
					    __init__.py
 | 
				
			||||||
 | 
					tests/
 | 
				
			||||||
 | 
					requirements.txt
 | 
				
			||||||
 | 
					setup.py
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## `requirements.txt`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Dependencies used within the venv for the project, e.g:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					google-auth==1.35.0
 | 
				
			||||||
 | 
					google-auth-httplib2==0.1.0
 | 
				
			||||||
 | 
					google-auth-oauthlib==0.4.6
 | 
				
			||||||
 | 
					google-api-python-client==2.26.1
 | 
				
			||||||
 | 
					gspread==3.7.0
 | 
				
			||||||
 | 
					requests==2.25.1
 | 
				
			||||||
 | 
					oauth2client==4.1.3
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## `setup.py`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The declaration file for the application, equivalent to `package.json`, e.g:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```py
 | 
				
			||||||
 | 
					from setuptools import setup, find_packages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setup(
 | 
				
			||||||
 | 
					    name="eolas-db",
 | 
				
			||||||
 | 
					    version="0.1",
 | 
				
			||||||
 | 
					    packages=find_packages(where="src"),
 | 
				
			||||||
 | 
					    package_dir={"": "src"},
 | 
				
			||||||
 | 
					    install_requires=[
 | 
				
			||||||
 | 
					        # List your project dependencies here
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    entry_points={
 | 
				
			||||||
 | 
					        "console_scripts": [
 | 
				
			||||||
 | 
					            "eolas-db=cli:main",
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The `entry_points` key is important. This is the first execution point of the
 | 
				
			||||||
 | 
					application. Typically you would name your entry-point script as `app.py` or
 | 
				
			||||||
 | 
					`cli.py` and then specify its `main` function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					E.g. in `cli.py`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```py
 | 
				
			||||||
 | 
					def main():
 | 
				
			||||||
 | 
					    print('run the application')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    main()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## `__init__.py`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					See
 | 
				
			||||||
 | 
					[[Python_modules_and_imports#distinguishing-_modules_-from-_packages_]]|Python
 | 
				
			||||||
 | 
					modules]]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue