Geovio client cli tool
Project description
GeoVisio is a complete solution for storing and serving your own 📍📷 geolocated pictures (like StreetView / Mapillary).
➡️ Give it a try at panoramax.ign.fr or geovisio.fr !
📦 Components
GeoVisio is modular and made of several components, each of them standardized and ♻️ replaceable.
All of them are 📖 open-source and available online:
🌐 Server | 💻 Client |
---|---|
API | Website |
Blur API | Web viewer |
GeoPic Tag Reader | Command line |
⌨️ GeoVisio Command-line scripts
This repository only contains command-line interface (CLI).
Features
This tool allows you to:
- Upload a sequence of pictures on a GeoVisio API
It is under development, new features will appear in a near future 😉
Install
GeoVisio CLI can be installed using two methods:
- From PyPI, the Python central package repository
- Using this Git repository
From PyPI
Just launch this command:
pip install geovisio_cli
After this you should be able to use the CLI tool with the name geovisio
:
geovisio --help
Alternatively, you can use pipx if you want all the script dependencies to be in a custom virtual env.
You need to install pipx, then:
pipx install geovisio_cli
From Git repository
Download the repository:
git clone https://gitlab.com/geovisio/cli.git geovisio_cli
cd geovisio_cli/
To avoid conflicts, it's considered a good practice to create a virtual environment (or virtualenv). To do so, launch the following commands:
# Create the virtual environment in a folder named "env"
python3 -m venv env
# Launches utilities to make environment available in your Bash
source ./env/bin/activate
Then, install the GeoVisio CLI dependencies using pip:
pip install -e .
You can also install the dev
dependencies if necessary (to have lints, format, tests, ...):
pip install -e .[dev]
Then, you can use the geovisio
command:
geovisio --help
Usage
All details of available commands are listed in USAGE.md documentation.
Upload pictures
The picture upload command is available under the upload
subcommand:
geovisio upload --help
If you want to upload pictures from a my_sequence
directory to a GeoVisio instance (running locally in this example), launch this command:
geovisio upload --api-url http://localhost:5000/ ./my_sequence
You can also add a --wait
flag to wait for geovisio to process all the pictures.
Authentication
If the GeoVisio API requires a login for the upload, the user/password can either be set:
- with command-line arguments (
--user
/--password
) - with environment variables (
GEOVISIO_USER
/GEOVISIO_PASSWORD
)
If no information is set but required by the GeoVisio instance, they will be asked interactively. This is the best way to enter the password so it will not be stored in the command-line history.
Note: the password is not stored, and sent directly to geovisio. If the future, this will be removed in favor of API keys when geovisio will support those.
Collection status
Prints the status of a collection.
geovisio collection-status --id <some collection id> --api-url http://localhost:5000
You can alternatively give the location of the sequence (its full url) like:
geovisio collection-status --location http://localhost:5000/api/collections/dae288b2-9e8d-4896-af39-d35ce6bc9d4e
You can also add a --wait
flag to wait for geovisio to process all the pictures.
Development
Tests
Tests are run using PyTest. By default, our tests use a Docker Compose environment (located in ./tests/integration/docker-compose-geovisio.yml
) to set-up a temporary GeoVisio API to run onto. If you have Docker Compose enabled and running on your machine, you can simply run this command to launch tests:
pytest
If you don't have Docker Compose, or want to use an existing GeoVisio test instance (to speed up tests), you can pass the --external-geovisio-url
option to pytest:
pytest --external-geovisio-url=http://localhost:5000
Documentation
High-level documentation is handled by Typer. You can update the generated USAGE.md
file using this command:
make docs
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Note that before opening a pull requests, you may want to check formatting and tests of your changes:
make ci
Make a release
git checkout main
git pull
make docs ci
vim CHANGELOG.md # Edit version + links at bottom
vim geovisio_cli/__init__.py # Edit version
git add *
git commit -m "Release x.x.x"
git tag -a x.x.x -m "Release x.x.x"
git push origin main --tags
🤗 Special thanks
GeoVisio was made possible thanks to a group of ✨ amazing people ✨ :
- GéoVélo team, for 💶 funding initial development and for 🔍 testing/improving software
- Carto Cité team (in particular Antoine Riche), for 💶 funding improvements on viewer (map browser, flat pictures support)
- La Fabrique des Géocommuns (IGN) for offering long-term support and funding the Panoramax initiative and core team (Camille Salou, Mathilde Ferrey, Christian Quest, Antoine Desbordes, Jean Andreani, Adrien Pavie)
- Many many wonderful people who worked on various parts of GeoVisio or core dependencies we use : 🧙 Stéphane Péneau, 🎚 Albin Calais & Cyrille Giquello, 📷 Damien Sorel, Pascal Rhod, Nick Whitelegg...
- Adrien Pavie, for ⚙️ initial development of GeoVisio
- And you all ✨ GeoVisio users for making this project useful !
⚖️ License
Copyright (c) GeoVisio team 2022-2023, released under MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for geovisio_cli-0.0.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | daddf702104147827e8e9b29edaa71aee3693a8c04d8a8795efb69a4c0d12818 |
|
MD5 | 8f43c2f6ce012182b48a17dd60e8b9b8 |
|
BLAKE2b-256 | 0624d63dfe44c6f1c736567da4c6a23e7055db98053beff45dc96664c39ff503 |