Programming/Python: Difference between revisions

From Dev Wiki
Jump to navigation Jump to search
(Create links)
(Correct word)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
Python is a high-level, object-oriented programming languages.
{{ Note | Common File Extensions: {{ ic|.py}} }}
 
 
[https://www.python.org/ Python] is a high-level, object-oriented programming language.


The language has "dynamic semantics" and thus encourages rapid application development. It also heavily emphasizes code readability, which results in a language that emphasizes whitespace with very simple (but powerful) syntax.
The language has "dynamic semantics" and thus encourages rapid application development. It also heavily emphasizes code readability, which results in a language that emphasizes whitespace with very simple (but powerful) syntax.




== Setup ==
== Setup ==
* [[Python/Setup]]
* [[Python/Setup]]
* [[Python/PipEnv]]




Line 16: Line 21:




== Related Libraries and Frameworks ==
== Managing Packages ==
* [[Python/Managing Packages]]
 
 
== Related Packages and Libraries ==
 
See also [[Programming/Django#Related_Packages_and_Libraries | Django Packages and Libraries ]].
 
 
=== Dependency & Environment Management ===
 
{{ todo | Document and research actual differences and benefits/drawbacks between these two.}}
 
[[Python/PipEnv | PipEnv]] - Project dependency manager for Python projects.
 
[[https://python-poetry.org/docs/ Poetry]] - Project dependency manager for Python projects.
 
 
=== Unit Testing ===
 
[[Python/Testing | Pytest]] - Recommended tool to run Python tests.
pytest                          # Base Pytest package.
pytest-asyncio                  # Additional Pytest logic for asyncio support.
pytest-django                  # Additional Pytest logic for Django support.
pytest-subtests                # Additional Pytest logic for improved subtest support.
pytest-xdist                    # Additional Pytest features, such as multithreading and looping.
 
 
[[Python/Testing/CodeCoverage | CodeCoverage]]
coverage                        # Output for checking testing coverage data.
 
 
=== Web Development ===
 
[https://flask.palletsprojects.com/en/2.2.x/ Flask] - Good for quick projects, but if building a fully qualified site, consider Django instead.
Flask                          # A lightweight web framework.
 
 
[[Programming/Django | Django]] - A Python-based web framework, equivalent to [https://laravel.com/ Php's Laravel].
django                          # A Python-based web framework.
 
 
=== Syntax Checking ===
 
[https://github.com/hhatto/autopep8 AutoPep8]
autopep8                                  # Auto-formats files for pep8 recommendations. Exceptions in `setup.cfg`.
 
 
[https://flake8.pycqa.org/en/latest/ Flake8]
flake8                                    # Wrapper for autopep8 that allows extra configuration, etc.
 
 
[https://black.readthedocs.io/en/stable/ Black]
black                                      # An opinionated code formater.
 
 
[https://pylint.pycqa.org/en/latest/ Pylint]
pylint                                    # Linter for Python syntax. Must be run in console via "pylint" command.
pylint-django                              # Improves code analysis for Django projects.
pylint-plugin-utils                        # Additional pylint functionality for things like Django and Celery.
 
 
=== Utility & Other ===
 
[https://faker.readthedocs.io/en/master/ Faker]
Faker                          # Easy generation of random values for various common data types.

Latest revision as of 07:52, 21 February 2023

Note: Common File Extensions: .py


Python is a high-level, object-oriented programming language.

The language has "dynamic semantics" and thus encourages rapid application development. It also heavily emphasizes code readability, which results in a language that emphasizes whitespace with very simple (but powerful) syntax.


Setup


Syntax


Testing


Managing Packages


Related Packages and Libraries

See also Django Packages and Libraries .


Dependency & Environment Management

ToDo: Document and research actual differences and benefits/drawbacks between these two.

PipEnv - Project dependency manager for Python projects.

[Poetry] - Project dependency manager for Python projects.


Unit Testing

Pytest - Recommended tool to run Python tests.

pytest                          # Base Pytest package.
pytest-asyncio                  # Additional Pytest logic for asyncio support.
pytest-django                   # Additional Pytest logic for Django support.
pytest-subtests                 # Additional Pytest logic for improved subtest support.
pytest-xdist                    # Additional Pytest features, such as multithreading and looping.


CodeCoverage

coverage                        # Output for checking testing coverage data.


Web Development

Flask - Good for quick projects, but if building a fully qualified site, consider Django instead.

Flask                           # A lightweight web framework.


Django - A Python-based web framework, equivalent to Php's Laravel.

django                          # A Python-based web framework.


Syntax Checking

AutoPep8

autopep8                                   # Auto-formats files for pep8 recommendations. Exceptions in `setup.cfg`.


Flake8

flake8                                     # Wrapper for autopep8 that allows extra configuration, etc.


Black

black                                      # An opinionated code formater.


Pylint

pylint                                     # Linter for Python syntax. Must be run in console via "pylint" command.
pylint-django                              # Improves code analysis for Django projects.
pylint-plugin-utils                        # Additional pylint functionality for things like Django and Celery.


Utility & Other

Faker

Faker                           # Easy generation of random values for various common data types.