The process of cloning pyATS repositories and putting pyATS packages into
development mode can be repetitive and time consuming, especially when working
with many packages. This is where the
pyats develop command comes in. This
command is your one-stop-shop for not only cloning pyATS repositories, but for
putting them into development mode too. List the packages you want, set the
options you’d like, (maybe go make yourself a cup of tea/coffee/cocoa) and let
pyats develop handle the rest.
pyats develop helper command is designed to ease and expedite the process
of cloning pyATS package repositories and putting each of those packages into
development mode. It checks that all of your pyATS packages are up-to-date,
downloads packages (if necessary), puts packages into development
mode, and then another check that packages in development mode are up-to-date.
This commands requires a Github SSH key to be set up if internal Cisco repositories are to be cloned.
Usage: pyats develop [packages...] [options] Usage Examples: pyats develop all pyats develop genie.libs.sdk --skip-version-check pyats develop genie.libs.parser genie.trafficgen --external pyats develop unicon.plugins genie.libs --delete-repos --directory my_repos pyats develop pyats.config --clone-only Description: Puts listed pyATS packages into development mode. Listed packages will have their repositories downloaded from Github if required and 'make develop' will be run for each package. By default, internal Cisco repos will be cloned if the pyATS installation is internal, otherwise external repos will be cloned instead. Github SSH keys are required to clone internal Cisco packages. Develop Options: packages Packages to put into development mode. Available choices: all, cisco- distutils, genie, genie.libs, genie.libs.clean, genie.libs.conf, genie.libs.filetransferutils, genie.libs.health, genie.libs.ops, genie.libs.robot, genie.libs.sdk, genie.libs.parser, genie.telemetry, genie.trafficgen, pyats, pyats.contrib, rest.connector, unicon, unicon.plugins, yang.connector -e, --external Clone external public repositories instead of internal. Only applicable to internal Cisco pyATS installations. For external pyATS Installations, external public repositories will always be used (Optional) -d, --directory DIRECTORY Absolute or relative path of directory to clone repositories into. If not supplied, then the default directory is $VIRTUAL_ENV/pypi (Optional) -f, --force-develop Run 'make develop' even if packages are already in development mode (Optional) -s, --skip-version-check Do not check if pyATS packages are up to date before tool execution. WARNING: Using this option may lead to pyATS package version conflicts which could result in a corrupted pyATS installation! Use with discretion (Optional) --delete-repos Delete existing repositories within directory before cloning new ones (Optional) IMPORTANT: Please back up your work before using this option! -c, --clone-only Clone the repositories, but do not put any packages into development mode (Optional) General Options: -h, --help Show help -v, --verbose Give more output, additive up to 3 times. -q, --quiet Give less output, additive up to 3 times, corresponding to WARNING, ERROR, and CRITICAL logging levels
A space-separated list of packages to put into development mode. Packages must be listed by their package name and not by their repository name. The two exceptions to this rule are ‘all’ and ‘genie.libs’. Using ‘all’ will expand the list to all available packages. Using ‘genie.libs’ will expand the list to include genie.libs.clean, genie.libs.conf, genie.libs.filetransferutils, genie.libs.health, genie.libs.ops, genie.libs.robot, and genie.libs.sdk.
Packages repositories will be cloned if they do not exist in the default (or specified) directory.
If you have an internal Cisco version of pyATS installed, then this tool will automatically clone internal pyATS repositories. If you have an external/public version of pyATS installed, then this tool will automatically clone external/public pyATS repositories. Use this flag if you have an internal version of pyATS and would like to have external packages be put into development mode instead. Only applicable to internal Cisco pyATS installations.
By default, repositories will be cloned
$VIRTUAL_ENV/pypi. Use this argument to override the default behaviour and allow for a different directory to be used instead. This tool does not keep a history of where packages have been cloned, so this argument will have to be used whenever packages have been cloned into a non-default directory.
This argument can be combined with the
--force-developargument to help when switching between multiple local repositories of the same package.
By default, if a package is already in development mode, then the command to put it into development mode will not be executed. Use this flag to execute that command even if the package is already in development mode. Useful for swicthing from an internal package to an external one or vice versa.
By default, this command will run the
pyats version checkcommand before execution. Use this flag to skip the version check.
Please use this flag with caution. The default behaviour of this tool is to use any pre-existing package repositories that are found within the used directory (see above
--directoryargument). Using this flag will cause those repositories to be deleted and then cloned. This can be a useful option when you want to ensure packages are clean and up to date, but please, make sure your work has been backed up before using this option.
Use this flag to only clone a package repository and not put that package into development mode.