root/dev/: django-children-models-dependencies-1.1.0.dev1 metadata and description

Homepage | Simple index | PyPI page

django-models-dependencies provides tools to get the dependencies in a tree of django models

author Stephane "TWidi" Angel
author_email s.angel@twidi.com
classifiers
  • Development Status :: 5 - Production/Stable
  • Operating System :: OS Independent
  • Intended Audience :: Developers
  • License :: OSI Approved :: BSD License
  • Programming Language :: Python :: 3
  • Programming Language :: Python :: 3.4
  • Topic :: Software Development :: Libraries
  • Topic :: Software Development :: Libraries :: Python Modules
  • Framework :: Django
  • Framework :: Django :: 1.8
  • Framework :: Django :: 1.9
license BSD
File Tox results History
django_children_models_dependencies-1.1.0.dev1-py2.py3-none-any.whl
Size
8 KB
Type
Python Wheel
Python
2.7
  • Uploaded to root/dev by twidi 2017-07-08 22:01:39
django_children_models_dependencies-1.1.0.dev1.tar.gz
Size
6 KB
Type
Source
  • Uploaded to root/dev by twidi 2017-07-08 22:01:38

Purpose

This is a small app that allow to get the children of a base model, in an dependency order from the model with the less dependencies, to the model with the more dependencies, each model coming after its own dependencies

For example, for theses models:

class BaseModel(models.Model):
    class Meta:
        abstract = True

class ChildModel1(BaseModel):
    pass

class ChildModel2(BaseModel):
    link = models.ForeignKey('myapp.ChildModel3', on_delete=models.CASCADE)


class ChildModel3(BaseModel):
    pass

The order will be:

from django_children_models_dependencies.manager import ChildrenDependenciesManager

self.assertListEqual(ChildrenDependenciesManager.get_children_dependencies(BaseModel), [
    ChildModel1,  # first model without dependencies
    ChildModel3,  # dependency of ChildModel2, so it comes before
    ChildModel2,  # last one, which must come after its own dependencies
])

Installation

The django-children-models-dependencies package is only available on the Magency private pypi server.

pip install -i https://login:password@pypi.magency.ninja/some/index django-children-models-dependencies

Developement

The code can be found on the Magency mhr-python-external-modules repository

Install the required packages:

pip install  -i https://login:password@pypi.magency.ninja/some/index -r requirements-dev.txt

To run tests, simply launch the runtests.sh script.

And for pylint:

PYTHONPATH="$PYTHONPATH:." pylint django_children_models_dependencies tests

When ready, update the version in django_children_models_dependencies/__init__py then create the package:

./setup.py sdist bdist_wheel

You can now upload it to devpi:

devpi use https://login:password@pypi.magency.ninja
devpi login yourlogin
devpi use yourlogin/dev
devpi upload dist/django_children_models_dependencies-*VERSION*

Support

python>=3.4 django>=1.9