Mauricio Matias
🇧🇴 Software Developer 🔓 OSH / FLOSS lover and contributor "Make it Real"
@cr0wg4n
Mauricio Serginho Matias C.
"Es cuestion de libertad, no de precio"
0. Libertad de ejecutar el programa como se desee, con cualquier propósito.
1. Libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que se desee
2. Libertad de redistribuir copias para ayudar a otros
3. Libertad de distribuir copias de sus versiones modificadas a terceros
Se centra en prácticos que una unidad de software puede aportar. En otras palabras, es pragmático.
"Open Source no solo significa acceso al código fuente"
Es el repositorio de software para el lenguaje de programación Python. Es donde se aloja cada paquete que instalas al usar PIP (Package Installer for Python)
pip install requests
C:\Users\PC\AppData\Local\Programs\Python\Python38-32\Lib\site-packages
pypi-package-guide
Recupera frases celebres de un archivo de texto y muestra una frase aleatoriamente.
__pycache__
dist
*.egg-info
.venv
from pypi_package_guide import Phraser
import unittest
class Test(unittest.TestCase):
def test_get_random_phrase(self):
phraser = Phraser()
phrase = phraser.get_random_phrase()
print('\n', phrase, '\n')
self.assertGreater(len(phrase), 0)
if __name__ == "__main__":
unittest.main()
python -m unittest tests.tests
Ejecutar tests:
Si o si necesita de una __init__.py que exteriorize o exporte las funciones, clases, constantes y variables necesarias para manejar tu Lib.
from .phraser import Phraser
__init__.py
from pypi_package_guide import Phraser
phraser = Phraser()
phrase = phraser.get_random_phrase()
print('\n', phrase, '\n')
main.py
import setuptools
with open("README.md", "r", encoding="utf-8") as description:
long_description = description.read()
setuptools.setup(
name="pypi-package-guide",
version="0.0.2",
author="Nombre de Autor",
author_email="xxx@xxx.io",
description="This is a PYPI package template",
long_description=long_description,
long_description_content_type="text/markdown",
license='MIT',
url="https://github.com/cr0wg4n/pypi-package-guide",
project_urls={
"Bug Tracker": "https://github.com/cr0wg4n/pypi-package-guide/issues",
},
# more classifiers: https://pypi.org/classifiers/
classifiers=[
'Programming Language :: Python :: 3.6',
'Operating System :: POSIX :: Linux',
'License :: OSI Approved :: MIT License',
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'Topic :: Software Development :: Build Tools',
],
keywords=["template", "pypi-guide", "pypi"],
packages=["pypi_package_guide"],
package_data={
'pypi_package_guide': [
'data/*.txt',
]
},
# install_requires = ['requests', 'numpy'] etc...
install_requires=[],
python_requires=">=3.6",
)
(
name="pypi-package-guide",
version="0.0.2",
author="Nombre de Autor",
author_email="xxx@xxx.io",
...
)
(
...
description="This is a PYPI package template",
long_description=long_description,
long_description_content_type="text/markdown",
...
)
(
...
license='MIT',
url="https://github.com/cr0wg4n/pypi-package-guide",
project_urls={
"Bug Tracker": "https://github.com/cr0wg4n/pypi-package-guide/issues",
},
# more classifiers: https://pypi.org/classifiers/
classifiers=[
'Programming Language :: Python :: 3.6',
'Operating System :: POSIX :: Linux',
'License :: OSI Approved :: MIT License',
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'Topic :: Software Development :: Build Tools',
],
keywords=["template", "pypi-guide", "pypi"],
...
)
(
...
packages=["pypi_package_guide"],
package_data={
'pypi_package_guide': [
'data/*.txt',
]
},
# install_requires = ['requests', 'numpy'] etc...
install_requires=[],
python_requires=">=3.6"
)
¡Subamos un paquete a PyPI! 📦
pip install -U sdist twine setuptools wheel build
python setup.py sdist
pip install -e ./dist/<your_package_name>-<your_version>.tar.gz
twine upload dist/*
Comunidades:
@cr0wg4n
RRSS:
Amante del movimiento Open Source Hardware
Miembro de la comunidad "Hacklab Cochabamba" y "Ohara"
Software Developer, Ethical Hacking Consultores
Estudiante de Ing. de Sistemas (UMSS)
Vue.js|Nuxt.js|Python|Automation
Blogger en Medium
By Mauricio Matias
🇧🇴 Software Developer 🔓 OSH / FLOSS lover and contributor "Make it Real"