https://github.com/treyhunner/django-dependency
Git fork of django-dependency
https://github.com/treyhunner/django-dependency
Last synced: 3 months ago
JSON representation
Git fork of django-dependency
- Host: GitHub
- URL: https://github.com/treyhunner/django-dependency
- Owner: treyhunner
- License: bsd-3-clause
- Created: 2011-04-11T15:14:41.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2011-04-13T07:59:08.000Z (about 14 years ago)
- Last Synced: 2025-02-28T16:33:19.487Z (3 months ago)
- Language: Python
- Homepage: http://code.google.com/p/django-dependency/
- Size: 109 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.txt
- License: LICENSE.txt
Awesome Lists containing this project
README
django-dependency
=================Manage external dependencies hosted through any version control system.
Installation
============1) Download the app add it to your Python path:
::
hg clone https://django-dependency.googlecode.com/hg/ django-dependency
cd django-dependency
python setup.py install2) Add to your INSTALLED_APPS:
::
INSTALLED_APPS = (
# ...
'deps',
)Setup
=====
Add DEPENDENCIES to your settings file
* If you're migrating from using svn:externals, there is a script you can use to automatically generate the list of dependencies. Just run the following command, copy/paste the output into your settings file, and make sure your INSTALLED_APPS is up to date:::
create_deps.py apps/external_apps libs/external_libs
* If you're not migrating from svn:externals you can set your DEPENDENCIES and INSTALLED_APPS manually like this:
::
import os
import deps
# ...
PROJECT_PATH = os.path.abspath('%s/..' % path.dirname(__file__))
# ...
DEPDENDENCY_ROOT = os.path.join(PROJECT_PATH, 'external')
DEPENDENCIES = (
# subversion
deps.SVN(
#Uncomment to pin to revision 22
#rev=22,
'http://code.djangoproject.com/svn/django/trunk/django',
root=DEPDENDENCY_ROOT,
),
# mercurial
deps.HG(
#Uncomment to pin to revision 8ed91139be12
#rev='8ed91139be12',
'http://bitbucket.org/jezdez/django-robots/',
app_name='robots',
root=DEPDENDENCY_ROOT,
),
# git pinned to a SHA1 id with rev can use HEAD or other tags
deps.GIT(
'git://github.com/howiworkdaily/django-faq.git',
app_name='faq',
project_name='django-faq',
root=DEPDENDENCY_ROOT,
rev='85a23e71ba23d4fc5cd92d81a02c1b9073161a21',
),
)
# ...
INSTALLED_APPS = (
# ...
'robots',
)Update manage.py
================* To dynamically add the dependencies to your python path, add this code to manage.py AFTER importing settings but BEFORE importing anything from Django:
::
import deps
deps.add_all_to_path(projectname.settings, auto_update=sys.argv[1] == 'up')
* For example, a complete manage.py might look like this:::
#!/usr/bin/env python
import sys
import os.path
import deps# remove '.' from the path (you should use the project package to reference
# anything in here)
sys.path.pop(0)
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, os.path.dirname(PROJECT_ROOT))try:
import projectname.settings
except ImportError:
import sys
sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r.\ It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
sys.exit(1)if len(sys.argv) > 1 and sys.argv[1] == 'up':
deps.add_all_to_path(projectname.settings, auto_update=True)
else:
deps.add_all_to_path(projectname.settings, auto_update=False)from django.core.management import execute_manager
if __name__ == "__main__":
execute_manager(projectname.settings)* Now you can run "./manage.py up" to grab the dependencies!
Development sponsored by `Caktus Consulting Group, LLC
`_.