This is a computer translation of the original webpage. It is provided for general information only and should not be regarded as complete nor accurate. Close Disclaimer
Sponsorship

Metadata Publishing Just Got Easier

pycsw is an OGC API - Records and OGC CSW server implementation written in Python. Started in 2010 (more formally announced in 2011), pycsw allows for the publishing and discovery of geospatial metadata via numerous APIs (CSW 2/CSW 3, OpenSearch, OAI-PMH, SRU), providing a standards-based metadata and catalogue component of spatial data infrastructures. pycsw is Open Source, released under an MIT license, and runs on all major platforms (Windows, Linux, Mac OS X).

Deploy in 4 Minutes

        # Setup a virtual environment:
        python3 -m venv pycsw && cd pycsw && . bin/activate                  # Grab the pycsw source code:
        git clone https://github.com/geopython/pycsw.git && cd pycsw
        pip3 install -e . && pip3 install -r requirements-standalone.txt                  # Create and adjust a configuration file:
        cp default-sample.cfg default.cfg
        vi default.cfg         # adjust paths in
        # - server.home
        # - repository.database
        # set server.url to http://localhost:8000/
        
        # Setup the database:
        pycsw-admin.py setup_db --config default.cfg                  # Load records by indicating a directory of XML files, use -r for recursive:
        pycsw-admin.py load_records --config default.cfg --path /path/to/xml/                  # Run the server:
        python ./pycsw/wsgi.py                  # See that it works!
        curl http://localhost:8000  # OGC API - Records      
        curl http://localhost:8000/csw?service=CSW&version=2.0.2&request= =GetCapabilities  # CSW
        

Lightweight, Fast

pycsw stays out of your way:
  • Just a Python library
  • Install in just 4 minutes
  • Run multiple CSW endpoints with a single install
  • Headless: no GUI, just simple, scriptable command line configuration/deployment
  • Fully compliant, transactional, extensible metadata server in 400KB

Features

Flexible

Everything is callable and configurable:

  • Embed within your Python application, or use standalone
  • Deploy via mod_wsgi, Django, Flask, Pylons, or CGI
  • Integrated with popular open data portal software: GeoNode, CKAN, HHypermap, Open Data Catalog
  • Hook up to your existing metadata database, or use pycsw's native model and import your XML files
  • Choose your backend: PostgreSQL (with or without PostGIS), MySQL, or hack with SQLite
  • Manage settings in a configuration file, database, or even pass a Python dict
  • Robust, byte-level testing / continuous integration

Read the Docs