Reutilização de Aplicações - Software-Design-2017/SSMais GitHub Wiki

Histórico de Revisão

Data Versão Descrição Autor(es)
23/11/2017 1.0 Introdução Ronyell Henrique
23/11/2017 2.0 Empacotamento Ronyell Henrique

1. Introdução

2. Arquivos

  • README.rst
  • LICENSE
  • setup.py
  • MANIFEST.in

2.1 README.rst

    ====
    Nome da aplicação
    ====

    Descrição da aplicação reutilizável

    Como utilizar a aplicação
    ----------------------------

    1. Forma de importar a aplicação
      INSTALED_APPS = [
        ...
        'aplicação'
      ]

    2. Forma de acessar a aplicação via url (Caso seja necessário)

      url(r'.^aplicação/', include('aplicação.urls')),

    3. Aplicando as migrações `python3 manage.py migrate`.

    4. Visualizar a estrutura da modelo no admin http://127.0.0.1:8000/admin/
        (é necessário ativar o Admin).

    5. Visitar http://127.0.0.1:8000/aplicação/ para visualizar a aplicação importada.

2.2 LICENSE

2.3 setup.py

from pip.req import parse_requirements
import os
from setuptools import find_packages, setup

with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:
    README = readme.read()

# allow setup.py to be run from any path
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))

# parse_requirements() returns generator of pip.req.InstallRequirement objects
install_reqs = parse_requirements('requirements.txt', session='hack')

# reqs is a list of requirement
# e.g. ['django==1.5.1', 'mezzanine==1.4.6']
requires = [str(ir.req) for ir in install_reqs]


setup(
    name='Embeleza-Mais',
    version='0.1',
    packages=find_packages(),
    include_package_data=True,
    license='BSD License',  # example license
    description='A simple Django app to conduct Web-based polls.',
    long_description=README,
    url='https://www.example.com/',
    author='Your Name',
    author_email='[email protected]',
    install_requires=requires,
    classifiers=[
        'Environment :: Web Environment',
        'Framework :: Django',
        'Framework :: Django :: X.Y',  # replace "X.Y" as appropriate
        'Intended Audience :: Developers',
        'License :: OSI Approved :: BSD License',  # example license
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        # Replace these appropriately if you are stuck on Python 2.
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Topic :: Internet :: WWW/HTTP',
        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
    ],
)

2.4 MANIFEST.in

  include requirements.txt
  include requirements-dev.txt
  recursive-include aplicacao/templates *

3. Empacotamento

3.1 Gerando o Pacote

python3 setup.py sdist

3.2 Utilizando o Pacote

pip install --user aplicacao/dist/aplicacao-0.1.tar.gz
pip uninstall aplicacao

4. Distribuição no PyPI

  • twine. Comando: pip install twine

python3 setup.py sdist

twine upload dist/*

5. Referências