
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
django-cities-light
Advanced tools
.. image:: https://secure.travis-ci.org/yourlabs/django-cities-light.svg?branch=master :target: http://travis-ci.org/yourlabs/django-cities-light .. image:: https://img.shields.io/pypi/dm/django-cities-light.svg :target: https://crate.io/packages/django-cities-light .. image:: https://img.shields.io/pypi/v/django-cities-light.svg :target: https://crate.io/packages/django-cities-light .. image:: https://codecov.io/github/yourlabs/django-cities-light/coverage.svg :target: https://codecov.io/github/yourlabs/django-cities-light
This add-on provides models and commands to import country, subregion, region/state, and city data in your database.
The data is pulled from GeoNames <http://www.geonames.org/>
_ and contains cities, subregions, regions/states and countries.
Spatial query support is not required by this application.
This application is very simple and is useful if you want to make a simple
address book for example. If you intend to build a fully featured spatial
database, you should use
django-cities <https://github.com/coderholic/django-cities>
_.
Requirements:
Yes, for some reason, code that used to work on MySQL (not without pain xD) does not work anymore. So we're now using django.db.transaction.atomic which comes from Django 1.6 just to support MySQL quacks.
See CHANGELOG.
Install django-cities-light::
pip install django-cities-light
Or the development version::
pip install -e git+git@github.com:yourlabs/django-cities-light.git#egg=cities_light
Add cities_light
to your INSTALLED_APPS
.
Configure filters to exclude data you don't want, ie.::
CITIES_LIGHT_TRANSLATION_LANGUAGES = ['fr', 'en']
CITIES_LIGHT_INCLUDE_COUNTRIES = ['FR']
CITIES_LIGHT_INCLUDE_CITY_TYPES = ['PPL', 'PPLA', 'PPLA2', 'PPLA3', 'PPLA4', 'PPLC', 'PPLF', 'PPLG', 'PPLL', 'PPLR', 'PPLS', 'STLMT',]
Now, run migrations, it will only create tables for models that are not disabled::
./manage.py migrate
Finally, populate your database with command::
./manage.py cities_light
This command is well documented, consult the help with::
./manage.py help cities_light
By default, update procedure attempts to update all fields, including Country/Region/Subregion/City slugs. But there is an option to keep them intact::
./manage.py cities_light --keep-slugs
The configuration parameter CITIES_LIGHT_CITY_SOURCES, comes with the default value http://download.geonames.org/export/dump/cities15000.zip that has cities with a population over 15000, if you need to load cities with less population please use another source. For the list of available source please check here: http://download.geonames.org/export/dump/readme.txt
Geonames.org is updated on daily basis and its full import is quite slow, so if you want to import the same data multiple times (for example on different servers) it is convenient to use fixtures with the helper management command::
./manage.py cities_light_fixtures dump
./manage.py cities_light_fixtures load
To reduce space, JSON fixtures are compressed with bzip2 and can be fetched from any HTTP server or local filesystem.
Consult the help with::
./manage.py help cities_light_fixtures
Create development virtualenv (you need to have tox installed in your base system)::
tox -e dev
source .tox/dev/bin/activate
To run the test project, with the folder of the project as the current directory, run::
export PYTHONPATH="${PYTHONPATH}:/app/src"
docker run -d postgres -p 5432:5432
Then run the full import::
test_project/manage.py migrate
test_project/manage.py cities_light
There are several environment variables which affect project settings (like DB_ENGINE and CI), you can find them all in test_project/settings.py.
For example to change the database engine, you can run::
export DB_ENGINE=postgresql
export DB_HOST=192.168.0.118
export DB_NAME=app
export DB_USER=postgres
export DB_PORT=5432
To run the test suite you need to have postgresql or mysql installed with passwordless login, or just use sqlite. Otherwise the tests which try to create/drop database will fail.
Running the full test suite::
tox
To run the tests in specific environment use the following command::
tox -e py312-django42-sqlite
And to run one specific test use this one::
tox -e py312-django42-sqlite -- cities_light/tests/test_form.py::FormTestCase::testCountryFormNameAndContinentAlone
To run it even faster, you can switch to specific tox virtualenv::
source .tox/py312-django42-sqlite/bin/activate
CI=true test_project/manage.py test cities_light.tests.test_form.FormTestCase.testCountryFormNameAndContinentAlone
If you want to build the docs, use the following steps::
source .tox/dev/bin/activate
cd docs
make html
You could subscribe to the mailing list ask questions or just be informed of package updates.
Git graciously hosted <https://github.com/yourlabs/django-cities-light/>
_ by GitHub <http://github.com>
_,Documentation graciously hosted <http://django-cities-light.rtfd.org>
_ by RTFD <http://rtfd.org>
_,Package graciously hosted <http://pypi.python.org/pypi/django-cities-light/>
_ by PyPi <http://pypi.python.org/pypi>
_,Continuous integration graciously hosted <http://travis-ci.org/yourlabs/django-cities-light>
_ by Travis-ci <http://travis-ci.org>
_FAQs
Simple alternative to django-cities
We found that django-cities-light demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.