Skip to content

nnakamot/pyang

Repository files navigation

Install
-------
In this directory run:

  python setup.py install

(this might require root access)


To install in a different location, run:

  python setup.py install --prefix=/usr/local

If you do this, it is recommended to set the environment variable
YANG_INSTALL to the prefix directory.  This ensures that pyang will
find standard YANG modules.


Run locally without installing
------------------------------
export PATH=`pwd`/bin:$PATH
export MANPATH=`pwd`/man:$MANPATH
export PYTHONPATH=`pwd`:$PYTHONPATH
export YANG_MODPATH=`pwd`/modules:$YANG_MODPATH
export PYANG_XSLT_DIR=`pwd`/xslt
export PYANG_RNG_LIBDIR=`pwd`/schema

or:

source ./env.sh


Usage
-----
pyang -h
man pyang


Code structure
--------------
bin/pyang
  The executable script documented in pyang(1).

pyang/
  Contains the pyang library code.

pyang/__init__.py
  Initalization code for the pyang library.
  Defines the Context and Repository clasess.

pyang/syntax.py
  Generic syntax checking for YANG and YIN statements.
  Defines regular expressions for argument checking of core
  statements.

pyang/grammar.py
  Generic grammar for YANG and YIN.
  Defines chk_module_statements() which validates a parse tree
  according to the grammar.

pyang/statements.py
  Defines the generic Statement class and all validation code.

pyang/yang_parser.py
  YANG tokenizer and parser.
  
pyang/yin_parser.py
  YIN parser.  Uses the expat library for XML parsing.

pyang/types.py
  Contains code for checking built-in types.

pyang/plugin.py
  Plugin API.  Defines the class PyangPlugin which all plugins
  inherits from. All output handlers are written as plugins.

pyang/plugins/
  Directory where plugins can be installed.  All plugins in this
  directory are automatically initialized when the library is
  initialized.

pyang/translators/
  Contains output plugins for YANG, YIN, XSD, and DSDL translation.

pyang/xslt
  Contains XSLT stylesheets for generating RELAX NG, Schematron and
  DSRL schemas and validating instance documents. Also included is the
  free implementation of ISO Schematron by Rick Jelliffe from
  http://www.schematron.com/ (files iso_schematron_skeleton_for_xslt1.xsl,
  iso_abstract_expand.xsl and iso_svrl_for_xslt1.xsl).

pyang/schema
  Contains RELAX NG schema for YIN and RELAX NG library of common
  NETCONF elements which is included by the generated RELAX NG
  schemas.