Code Monkey home page Code Monkey logo

python-odml's Introduction

Travis build Build status Test coverage PyPI version Read the Docs

odML (Open metaData Markup Language) core library

The open metadata Markup Language is a file based format (XML, JSON, YAML) for storing metadata in an organised human- and machine-readable way. odML is an initiative to define and establish an open, flexible, and easy-to-use format to transport metadata.

The Python-odML library can be easily installed via pip. The source code is freely available on GitHub. If you are not familiar with the version control system git, but still want to use it, have a look at the documentation available on the git-scm website.

odML Project page

More information about the project including related projects as well as tutorials and examples can be found at our odML project page.

Getting started

Installation

python-odml is most conveniently installed via pip.

pip install odml

Tutorial and examples

Python convenience scripts

The Python installation features multiple convenience commandline scripts.

  • odmlconvert: Converts odML files of previous file versions into the current one.
  • odmltordf: Converts odML files to the supported RDF version of odML.
  • odmlview: Render and browse local XML odML files in the webbrowser.

All scripts provide detailed usage descriptions by adding the help flag to the command.

odmlconvert -h
odmltordf -h
odmlview -h

Breaking changes

odML Version 1.4 introduced breaking format and API changes compared to the previous versions of odML. Files saved in the previous format versions can be converted to a 1.4 compatible format using the version converter from the odml/tools package.

Be aware that the value dtype binary has been removed. Incorporating actual binary data into odML files is discouraged, provide references to the original files using the URL dtype instead.

For details regarding the introduced changes please check the github release notes.

Dependencies

  • Python 3.6+

  • Python packages:

    • lxml (version 3.7.2)
    • yaml (version >= 5.1)
    • rdflib (version >=4.2.2)
  • These packages will be downloaded and installed automatically if the pip method is used to install odML. Alternatively, they can be installed from the OS package manager. On Ubuntu, they are available as:

    • python-lxml
    • python-yaml
    • python-rdflib
  • If you prefer installing using the Python package manager, the following packages are required to build the lxml Python package on Ubuntu 14.04:

    • libxml2-dev
    • libxslt1-dev
    • lib32z1-dev

Previous Python versions

Python 2 has reached end of life. We will not keep any future versions of odml Python 2 compatible and will completely drop support for Python 2 with August 2020. We also recommend using a Python version >= 3.6. If a Python version < 3.6 is a requirement, the following dependency needs to be installed as well:

  • pip install
    • enum34 (version 0.4.4)
  • apt install
    • python-enum

Building from source

To download the Python-odML library please either use git and clone the repository from GitHub:

  $ git clone https://github.com/G-Node/python-odml.git

If you don't want to use git download the ZIP file also provided on GitHub to your computer (e.g. as above on your home directory under a "toolbox" folder).

To install the Python-odML library, enter the corresponding directory and run:

  $ cd python-odml
  $ python setup.py install

Note The master branch is our current development branch, not all features might be working as expected. Use the release tags instead.

Contributing and Governance

See the CONTRIBUTING document for more information on this.

Bugs & Questions

Should you find a behaviour that is likely a bug, please file a bug report at the github bug tracker.

If you have questions regarding the use of the library, feel free to join the #gnode IRC channel on freenode.

python-odml's People

Contributors

mpsonntag avatar rumpeltux avatar jgrewe avatar fschrader1992 avatar rickskyy avatar achilleas-k avatar digaru19 avatar stoewer avatar asobolev avatar gicmo avatar aniket-pradhan avatar kaustuv-deolal-hp-com avatar juliasprenger avatar tirkarthi avatar msuzen avatar mohit-0212 avatar

Watchers

Sebastian Spreizer avatar James Cloos avatar Rembrandt Bakker avatar Jakob Jordan avatar Steffen Graber avatar Jenia Jitsev avatar  avatar Barna Zajzon avatar Moritz Helias avatar Maximilian avatar  avatar Danylo Ulianych avatar Sacha van Albada avatar  avatar  avatar Tobias Schulte to Brinke avatar  avatar David Dahmen avatar Johanna Senk avatar  avatar  avatar Tom Tetzlaff avatar  avatar Markus Diesmann avatar  avatar Simon Essink avatar  avatar Claudia_Bachmann avatar Björn Müller avatar Daniel Mingers avatar Renan Oliveira Shimoura avatar Younes Bouhadjar avatar Karolina Korvasova avatar Tobias Kühn avatar  avatar Dennis Terhorst avatar  avatar Michael von Papen avatar  avatar

Forkers

juliasprenger

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.