{
"info": {
"author": "Acrisel Team",
"author_email": "support@acrisel.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Environment :: Other Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Topic :: Software Development :: Libraries :: Application Frameworks",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "=======\nPROJENV\n=======\n\nOverview\n========\n\nprojenv provides mechanism for project to manage parameters for programs in\nhierarchical way.\nEnvironment is a special type of dictionary holding parameters used by parts. \nThere are multiple levels and types of environment files playing part in program run.\n\n\nEnvironment node\n================\n\nEnvironment evaluation process walks the project tree from top to program location. \nIn each node it looks for set of files that defines the environment parameters.\nBy default, environment is derived from two type of files as each node:\n\n+-------+------------------+------------------------------------------------+\n| Number| Name | Description |\n+=======+==================+================================================+\n| 1 | .envpackage.xml | environment parameters for the package. |\n+-------+------------------+------------------------------------------------+\n| 2 | .envoverride.xml | personal overrides for package environment. It |\n| | | may include re-define parameters with override |\n| | | ride=True. |\n+-------+------------------+------------------------------------------------+\n\nProject can alter this default behavior by defining **.envconfig.xml** at its root \nwith specific value for envnodes.\n\n.. code-block:: xml\n\n \n .envproject, .envpackage, .envoverride\n \n \nEnvironment node must also have __init__.py. Each folder in the project hierarchy must have __init__.py file; this is since the search for parent folder stops when a folder is found not to have __init__.py file.\n\n**Important**: without __init__.py in the packages that have .envpackage.xml and .envoverride.xml, Environ will fail to load.\n\nProgram Interface\n=================\n\nWithin programs there are three types of access points to the \nenvironment variables. To get projenv dictionary, program can \nperform the following command:\n\n1. Loading environment variables from project structure \n2. Updating environment variable in program\n3. Accessing environment variables\n\nLoading environment variables\n=============================\n\n.. code-block:: python\n \n import projenv \n env=projenv.Environ()\n\nWhen Program evaluates environment, it starts with root location going down the tree up to and including package environment of Program location.\n\nEnviron class __init__ has the following signature\n\n::\n\n Environ(self, osenv=True, trace_env=None, logclass=None, logger=None)\n\n+----------+------------------------------------------------------+------------------------------+\n| Name |Description |Default Values |\n+==========+======================================================+==============================+\n| osenv | If set, load os environ. | True |\n+----------+------------------------------------------------------+------------------------------+\n| trace_env| List of environment variables to trace | None |\n+----------+------------------------------------------------------+------------------------------+\n| logclass | If provided the string will be used for trace naming.| None |\n+----------+------------------------------------------------------+------------------------------+\n| logger | If set to True and logclass=None, use Python | None |\n| | getChild to set trace name. | |\n+----------+------------------------------------------------------+------------------------------+\n\nWithin derivative articles environment can be updated with environment variable as follows.\n\nUpdating environment variables\n==============================\n\n.. code-block:: python\n\n env.updates([\n EnvVar(name='REJ_ALLOWED',cast='integer',value=0,input=True),\n EnvVar(name='OUT_FILE',value='${VAR_LOC}/summary.csv',cast='path', input=True),\n EnvVar(name='RATE',override='True',cast='integer',value=5,input=True)])\n\n\n**If input is set to True** the variable update will be ignored if the variable is defined in parent environment. If variable is not defined in parent environment, it will be defined and set to value from the command.\n**If input is set to False** update will overwrite variable value if variable exists, if variable is not defined it will define it.\n**Override** flags environment variable as changeable by derivative program articles.\n\n\nAccessing environment variables\n===============================\n\n.. code-block:: python\n\n import projenv\n env=projenv.Environ()\n env.updates([\n EnvVar(name='REJ_ALLOWED',cast='integer',value=0,input=True),\n EnvVar(name='OUT_FILE',value='${VAR_LOC}/summary.csv',cast='path', input=True),\n EnvVar(name='RATE',override='True',cast='integer',value=5,input=True)])\n\n ofile=env['OUT_FILE']\n rate=env.get('RATE')\n\n\nIn the first case(ofile variable), direct access, KeyError exception may be sent if variable name does not exist.\nIn the second example(rate variable), None value will be returned if not found.\n\n\nEnvironment Tree\n================\n\nEnvironment files are evaluated in hierarchical way. The project tree and its packages are treated as nodes in a tree.\nEach node can be evaluated and have its own representation of the environment.\n\nSingle Project Environment Tree\n*******************************\n\nAt each node, environment is evaluated in the sequence or envnodes configuration parameter. \nBy default this means:\n\n 1. First .envpackage.xml, if available, is read and set.\n 2. Next, .envoverride.xml overrides, if available, is read and set.\n \nAs shown below, this behavior could be changed to support different \nenvironment node structure. For example, to support legacy projects using older \nversion of projenv, the following configuration .envconfig.xml can be used:\n\n.. code-block:: xml\n\n \n .projectenv, packageenv, personalenv\n \n\nThe following figure shows a possible use of default configuration.The structure below \nshows example environment tree in a project. When the above command is engaged in \nProgram A, it would include environment setting of Project and Package A locations. \nProgram AB will include Program A, Package A and Package AB accordingly.\n\n Project\n - envpackage\n - envoverride\n - Program A\n - Package A\n - evpackage\n - envoverride\n - Package AB\n - envpackage\n - envoverride\n - Program AB\n\n\nThe structure below shows example of an environment file. Core environment is tagged under \n< environ>. Environ mechanism would look for this tag. Once found, it would evaluate its \ncontent as environ- ment directive.\n\n.. code-block:: xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n\nNote: tag is to provide enclosure to environ. Environ mechanism is not \ndepending on its existent per se. However, some kind on enclosure is required; \ncan not be in top level of the XML.\n\n\nExample of Multiple Project Environment Tree\n********************************************\n\nAt each import, environment is evaluated in the following sequence:\n 1. First get the node representation of imported path.\n 2. Evaluate it recursively (loading imports).\n 3. Finally, insert the resulted imported map instead of the import directive (flat).\n\n\nProject A: /Users/me/projs/proja/.envpackage.xml\n\n.. code-block:: xml\n\n \n \n \n \n \n \n \n\n\nProject B: /Users/me/projs/projb/.envpackage.xml'\n\n.. code-block:: xml\n\n \n \n \n \n \n \n\n\nThe example above shows import project directive within project B's environment. In project B's context, FILE_PATH variable will result with\nthe value /Users/me/tmp/bname.\n\n**Recursive** inclusion of environments (recursive import statement) would cause evaluation of environment variables to be loaded recursively.\nConsideration is given to overrides in post import environments.\n\n**Note**: import must be set as full path for the installation of the included project. It is therefore best practice to populate real path \nonly in .envoverride.xml and not in .envpackage.xml.\n\nBest Practices\n==============\n\nSo many options, so what should one do?\n\nNaming Parameters\n*****************\n\n*Prefix* your parameters with an identifier. Specifically if your projects would \nneed to cooperate (import their environment). We have all parameters us \u2019AC \u2019 as prefix. We \nalso define \u2019AC PROJ PREFIX\u2019 that can be used in program to construct parameter name.\n\nWe recommend following UNIX convention for environment variables. Use upper-case letters \nseparated with underscore. We use this style in all of this document listings.\n\n*Drivers and Derivatives*, for the sake of this discussion we define three types of parameters:\n1. standalone is a parameter that is not dependent on another and is not used by another parameter.\n2. driver is a parameter that other parameters defined by it.\n3. derivative is a parameter that includes a driver in its definitions.\n\nA parameter can be both a driver and derivative.\nUse drivers and derivative parameter definition in such a way that users may personalize the \nbehavior of the system. For example, developers may want to change their own directory structure to \nfit their own tools.\n\n.envproject\n***********\n\nDot (.) envproject, although not default in envnodes configuration, good practice to use. It \nis usually contains parameters that are good for the all projects. You can look at is as your \nstandard parameters to all projects that you produce. In the following listing locations are \ndefined as derivatives of AC VAR BASE. This is useful since users of this project can override \nthat parameter to change to their own structure.\n\n.. code-block:: xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n.envpackage\n***********\nDot envpackage includes definitions for that are specific to the project or the package. \nUsually this is kept for things like RPC PORT or maybe MAIL SEND SMTP.\n\n.envoverride\n************\n\nDot envoverride provides means to personalize an environment. Users can override .envpackage default parameters settings. \n\nIt is recommended to exclude envoverride from your code repository \n(e.g., add envoverride.xml to .gitignore). Otherwise, users may override each other \npersonalizations.\n\nUtilities\n=========\n\n**projenv** contains a few utilities to help initialize and use project or package environments.\n\nmkprojenvpackage.py\n*******************\n\n**mkprojenvpackage.py** predominately creates .envpackage.xml parameter set. It also creates .envoverride.xml parameter set unless instructed otherwise. \n\nFinally, it creates project folders as defined in the parameter set, if choose to do so.\n\nExample\n~~~~~~~\n\nIn this example , only var folder is being override (line 7)\n\n.. code-block:: python\n :number-lines:\n\n $ mkdir teste\n $ cd teste\n $ touch __init__.py\n $ mkprojenvpackage.py \n Enter project name (name of folder that will be created for project) [teste]: \n Enter project version []: \n Enter location for project's var folder [/var/data/teste]: /var/acrisel/data/teste\n Var space location /var/acrisel/data/teste don't exist, create? [Yes]: \n Enter project prefix [TESTE_]: \n Enter environment name [.]: \n Successfully created projectenv /Users/tester/teste/.envpackage.xml\n Successfully created projectenv /Users/tester/teste/.envoverride.xml\n create project folders? [Yes]: \n Creating project folders:\n TESTE_PROJ_LOC: Already exists /Users/tester/teste/\n TESTE_PROJ_API_LOC: Created /Users/tester/teste/api/\n TESTE_PROJ_DB_LOC: Created /Users/tester/teste/db/\n TESTE_PROJ_SRC_LOC: Created /Users/tester/teste/src/\n TESTE_PROJ_FMT_LOC: Created /Users/tester/teste/fmt/\n TESTE_PROJ_RES_LOC: Created /Users/tester/teste/res/\n TESTE_PROJ_CFG_LOC: Created /Users/tester/teste/cfg/\n TESTE_PROJ_DATA_LOC: Created /Users/tester/teste/data/\n TESTE_VAR_LOC: Created /var/acrisel/data/teste/./\n TESTE_LOG_LOC: Created /var/acrisel/data/teste/./log/\n TESTE_REJ_LOC: Created /var/acrisel/data/teste/./rej/\n TESTE_RUN_LOC: Created /var/acrisel/data/teste/./run/\n TESTE_IN_LOC: Created /var/acrisel/data/teste/./in/\n TESTE_OUT_LOC: Created /var/acrisel/data/teste/./out/\n TESTE_DB_LOC: Created /var/acrisel/data/teste/./db/\n TESTE_LKUP_LOC: Created /var/acrisel/data/teste/./lkup/\n TESTE_TMP_LOC: Created /var/acrisel/data/teste/./tmp/\n\nCommand line options\n~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: python\n\n $ mkprojenvpackage.py -h\n usage: mkprojenvpackage.py [-h] [-t PATH] [-p PATH] [-n NAME] [-d PATH]\n [-w PATH] [-x NAME] [-e NAME] [-v VERSION]\n [--no-override] [--force-defaults]\n\n optional arguments:\n -h, --help show this help message and exit\n -t PATH, --templates PATH\n location of templates. defaults to projenv built-in\n templates\n -p PATH, --project PATH\n path to project. defaults to current working directory\n -n NAME, --name NAME name to project. default for directory name of project\n location\n -d PATH, --data PATH location of data space where data projects are\n created, default /var/data/(name of PROJECT)\n -w PATH, --work PATH location of work space where processing in-work data\n is created, default DATA space\n -x NAME, --prefix NAME\n project prefix used for environment parameters names.\n defaults to project name.\n -e NAME, --environment NAME\n name to be use to personalize var area. Recommended to\n use when multiple users use the same var area\n -v VERSION, --version VERSION\n version for this project environment. Use if need to\n bind environment version to project.\n --no-override skips creation of .envoverride.xml\n --force-defaults forces the use of default. this option skips\n interaction\n\n\nmkprojenvoverride.py\n********************\n\nExample \n~~~~~~~\n\nIn this example, tester only had .envpackage.xml file in project directory. In building overrides, tester profides environment name (line 2). as a result, var area is personalized with tester name (as oppose to previous example line 10)\n\n.. code-block:: python\n :number-lines:\n\n $ mkprojenvoverride.py\n Enter environment name [.]: tester\n create project folders? [Yes]: \n Creating project folders:\n TESTE_OUT_LOC: Created /var/acrisel/data/teste/tester/out/\n TESTE_LKUP_LOC: Created /var/acrisel/data/teste/tester/lkup/\n TESTE_PROJ_CFG_LOC: Created /Users/tester/teste/cfg/\n TESTE_TMP_LOC: Created /var/acrisel/data/teste/tester/tmp/\n TESTE_DB_LOC: Created /var/acrisel/data/teste/tester/db/\n TESTE_PROJ_SRC_LOC: Created /Users/tester/teste/src/\n TESTE_PROJ_DATA_LOC: Created /Users/tester/teste/data/\n TESTE_PROJ_RES_LOC: Created /Users/tester/teste/res/\n TESTE_PROJ_FMT_LOC: Created /Users/tester/teste/fmt/\n TESTE_REJ_LOC: Created /var/acrisel/data/teste/tester/rej/\n TESTE_LOG_LOC: Created /var/acrisel/data/teste/tester/log/\n TESTE_PROJ_LOC: Already exists /Users/tester/teste/\n TESTE_VAR_LOC: Already exists /var/acrisel/data/teste/tester/\n TESTE_PROJ_API_LOC: Created /Users/tester/teste/api/\n TESTE_RUN_LOC: Created /var/acrisel/data/teste/tester/run/\n TESTE_IN_LOC: Created /var/acrisel/data/teste/tester/in/\n TESTE_PROJ_DB_LOC: Created /Users/tester/teste/db/\n \nCommand line options\n~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: python\n\n $ mkprojenvoverride.py -h\n usage: mkprojenvoverride.py [-h] [-t PATH] [-p PATH] [-e NAME]\n [--force-defaults]\n\n optional arguments:\n -h, --help show this help message and exit\n -t PATH, --templates PATH\n location of templates. defaults to projenv built-in\n templates\n -p PATH, --project PATH\n path to project. defaults to current working directory\n -e NAME, --environment NAME\n name to be use to personalize var area. Recommended to\n use when multiple users use the same var area\n --force-defaults forces the use of default. this option skips\n interaction\n\n\nmkprojenvdirs.py\n****************\n\nCreates project folders according \n\nExample\n~~~~~~~\n\n.. code-block:: python\n :number-lines:\n \n $ mkprojenvdirs.py\n create project folders? [Yes]: \n Creating project folders:\n TESTE_PROJ_LOC: Already exists /Users/tester/teste/\n TESTE_PROJ_API_LOC: Created /Users/tester/teste/api/\n TESTE_PROJ_DB_LOC: Created /Users/tester/teste/db/\n TESTE_PROJ_SRC_LOC: Created /Users/tester/teste/src/\n TESTE_PROJ_FMT_LOC: Created /Users/tester/teste/fmt/\n TESTE_PROJ_RES_LOC: Created /Users/tester/teste/res/\n TESTE_PROJ_CFG_LOC: Created /Users/tester/teste/cfg/\n TESTE_PROJ_DATA_LOC: Created /Users/tester/teste/data/\n TESTE_VAR_LOC: Already exists /var/acrisel/data/teste/tester/\n TESTE_LOG_LOC: Already exists /var/acrisel/data/teste/tester/log/\n TESTE_REJ_LOC: Already exists /var/acrisel/data/teste/tester/rej/\n TESTE_RUN_LOC: Already exists /var/acrisel/data/teste/tester/run/\n TESTE_IN_LOC: Already exists /var/acrisel/data/teste/tester/in/\n TESTE_OUT_LOC: Already exists /var/acrisel/data/teste/tester/out/\n TESTE_DB_LOC: Already exists /var/acrisel/data/teste/tester/db/\n TESTE_LKUP_LOC: Already exists /var/acrisel/data/teste/tester/lkup/\n TESTE_TMP_LOC: Already exists /var/acrisel/data/teste/tester/tmp/\n \nCommand line options\n~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: python\n\n $ mkprojenvdirs.py -h\n usage: mkprojenvdirs.py [-h] [-p PATH]\n\n optional arguments:\n -h, --help show this help message and exit\n -p PATH, --project PATH\n path to project. defaults to current working directory\n\nexport_projev.py and .sh\n************************\n\n**export_projenv.py** provide a function and command line access to get projects' environment parameters in appropriate shell format.\nit sh partner, **export_projenv.sh** can be source to export environment parameters in current shell. **source export_projenv.sh [project]**.\n\n**export_projenv.sh** uses **export_projev.py** to produce exportable construct for UNIX shell.\n\nExample\n~~~~~~~\n\n.. code-block:: python\n\n $ export_projenv.py --exclude-os\n export PROJENV_PREFIX=\"TESTE_\"\n export TESTE_PROJ_NAME=\"teste\"\n export TESTE_PROJ_VER=\"\"\n export TESTE_PROJ_LOC=\"/Users/tester/teste/\"\n export TESTE_PROJ_API_LOC=\"/Users/tester/teste/api/\"\n export TESTE_PROJ_DB_LOC=\"/Users/tester/teste/db/\"\n export TESTE_PROJ_SRC_LOC=\"/Users/tester/teste/src/\"\n export TESTE_PROJ_FMT_LOC=\"/Users/tester/teste/fmt/\"\n export TESTE_PROJ_RES_LOC=\"/Users/tester/teste/res/\"\n export TESTE_PROJ_CFG_LOC=\"/Users/tester/teste/cfg/\"\n export TESTE_PROJ_DATA_LOC=\"/Users/tester/teste/data/\"\n export TESTE_ENCODING=\"ascii\"\n export TESTE_BYTEORDER=\"network\"\n export TESTE_ENV_NAME=\"tester\"\n export TESTE_VAR_LOC=\"/var/acrisel/data/teste/tester/\"\n export TESTE_LOG_LOC=\"/var/acrisel/data/teste/tester/log/\"\n export TESTE_REJ_LOC=\"/var/acrisel/data/teste/tester/rej/\"\n export TESTE_RUN_LOC=\"/var/acrisel/data/teste/tester/run/\"\n export TESTE_IN_LOC=\"/var/acrisel/data/teste/tester/in/\"\n export TESTE_OUT_LOC=\"/var/acrisel/data/teste/tester/out/\"\n export TESTE_DB_LOC=\"/var/acrisel/data/teste/tester/db/\"\n export TESTE_LKUP_LOC=\"/var/acrisel/data/teste/tester/lkup/\"\n export TESTE_TMP_LOC=\"/var/acrisel/data/teste/tester/tmp/\"\n export TESTE_LOG_LEVEL=\"DEBUG\"\n export TESTE_LOG_STDOUT=\"False\"\n export TESTE_LOG_STDOUT_LEVEL=\"INFO\"\n export TESTE_LOG_STDERR=\"True\"\n export TESTE_LOG_STDERR_LEVEL=\"WARNING\" \n \nCommand line options\n~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: python\n\n $ export_projenv.py -h\n usage: export_projenv.py [-h] [-p PATH] [--shell {sh,ksh,bash}] [--exclude-os]\n\n optional arguments:\n -h, --help show this help message and exit\n -p PATH, --project PATH\n path to project. defaults to current working directory\n --shell {sh,ksh,bash}\n bind the shell to be compatible with\n --exclude-os does not add OS environ\n\n\nHook to Virtualenv and virtualenvwrapper\n========================================\n\nIt is highly recommended to use virtualenv and virtualenvwrapper in conjunction to projenv.\n\nTo make this convenient, projenv has a hook into virtualenv: **addproj2virtualenv [path]>**.\n\nMultiple projects mat be using the same virtualenv. Once project is added to virtualenv, to get access to project features, **setproj ** should be used.\n\nOnce project is selected by **setproj**, **cdsand ** can be used where tag is navigate to project sandbox base location parameter. Similarly, **cdvar ** can be used to navigate to var base location parameters.\n\nExample\n*******\n\nHere we assume projenv templates were used to create a project. Hence the following environment variables are used. If project name is example, the following environment parameter will be part of the environment:\n\nEXAMPLE_PROJ_LOC\nEXAMPLE_PROJ_API_LOC\nEXAMPLE_VAR_LOC\nEXAMPLE_LOG_LOC\n\nafter **setproj example**, we can use the following navigational commands:\n\n**cdproj**: will relocate to EXAMPLE_PROJ_LOC\n**cdproj api** will relocate to EXAMPLE_PROJ_API_LOC\n**cdvar** will relocate to EXAMPLE_VAR_LOC\n**cdvar log** will relocate to EXAMPLE_LOG_LOC\n\n\nInstallation, validation and example program\n============================================\n\nHow to install, validate installation and use the package?\n\nInstallation\n************\n\nTo install run following command: pip install projenv\n\nValidation\n**********\n\ntest.py in github link below perform unit test cases to check projenv.\n\nExample\n*******\n\nSee example of the program using projenv on \nGithub https://github.com/Acrisel/projenv/blob/master/environ/example/example\n\nBackwards compatibility\n=======================\n\nDue the changes in naming of node base files, projects using previous version can do one of the following steps.\n\n1. Change node files name to fit the new naming convention.\n2. Add **.envconfig.xml** with proper envnodes definition as follows:\n\n.. code-block:: xml\n\n \n .projectenv.xml, packageenv.xml, personalenv.xml\n \n \nAlso, each folder in the project hierarchy need to have __init__.py file; See environment node section above for more details.\n \nAdditional resources\n====================\n\nDocumentation is in the \"docs\" directory and online at the design and use of projenv.\n\n**example** and **tests** directory shows ways to use projenv.Environ . Both directories are available to view and download as part of source code\non GitHub. GitHub_link_\n\n.. _GitHub_link: https://github.com/Acrisel/projenv\n\nDocs are updated rigorously. If you find any problems in the docs, or think they\nshould be clarified in any way, please take 30 seconds to fill out a ticket in\ngithub or send us email at support@acrisel.com\n\nTo get more help or to provide suggestions you can send as email to:\narnon@acrisel.com uri@acrisel.com",
"description_content_type": null,
"docs_url": "https://pythonhosted.org/projenv/",
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/Acrisel/projenv",
"keywords": "project,sandbox,virtualenv,virtualenvwrapper,configuration,parameters",
"license": "MIT",
"maintainer": null,
"maintainer_email": null,
"name": "projenv",
"package_url": "https://pypi.org/project/projenv/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/projenv/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "https://github.com/Acrisel/projenv"
},
"release_url": "https://pypi.org/project/projenv/2.0.5/",
"requires_dist": null,
"requires_python": null,
"summary": "ProjEnv allows the use of hierarchical parameter structure for projects.",
"version": "2.0.5"
},
"last_serial": 2726287,
"releases": {
"0.9.12b1": [
{
"comment_text": "",
"digests": {
"md5": "964eb0242deab8dc28f1c0e1a93abeab",
"sha256": "456de35234841dc6e38a07ab09f336dded434ce84328f9fa7e926b36ac37ca55"
},
"downloads": -1,
"filename": "projenv-0.9.12b1.tar.gz",
"has_sig": false,
"md5_digest": "964eb0242deab8dc28f1c0e1a93abeab",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16928,
"upload_time": "2015-08-13T04:57:07",
"url": "https://files.pythonhosted.org/packages/a7/c5/1bf0a2d1e14b3eadd4ea0ff1232d01e89f719cdedd58657514ce4bee0cb6/projenv-0.9.12b1.tar.gz"
},
{
"comment_text": "",
"digests": {
"md5": "4b769a8b1d05dea09cab6dbc4bef8268",
"sha256": "5af609665cbf52190585d02c2f8c3c8d493e36f9db62b76e8c683b09cf5ce996"
},
"downloads": -1,
"filename": "projenv-1.1.zip",
"has_sig": false,
"md5_digest": "4b769a8b1d05dea09cab6dbc4bef8268",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25261,
"upload_time": "2015-09-30T00:37:14",
"url": "https://files.pythonhosted.org/packages/f2/5b/13721d175ee719637cae700143f3a8ceaf188b2402c78292b507f1b5df57/projenv-1.1.zip"
}
],
"1.1": [],
"1.1.1": [
{
"comment_text": "",
"digests": {
"md5": "3aabfa373285d0d56af1fa2ce45e8131",
"sha256": "1ecf40d4e409974b7c8030e24746370dd938fb7d4f7e74dd9f8bf5bd9a557b5f"
},
"downloads": -1,
"filename": "projenv-1.1.1.zip",
"has_sig": false,
"md5_digest": "3aabfa373285d0d56af1fa2ce45e8131",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25348,
"upload_time": "2015-09-30T00:54:16",
"url": "https://files.pythonhosted.org/packages/6c/42/f1091d49deec0cc0712953c0a6b9309c6ed9892d752139678eeb6213b85e/projenv-1.1.1.zip"
}
],
"1.1.2": [
{
"comment_text": "",
"digests": {
"md5": "420190565dbc8d741bd5026176055161",
"sha256": "f6d35ffb270c16b94e7b215ca3a40810df731b8c46eee086bc00230b8da9a2e8"
},
"downloads": -1,
"filename": "projenv-1.1.2.zip",
"has_sig": false,
"md5_digest": "420190565dbc8d741bd5026176055161",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 24997,
"upload_time": "2015-10-20T01:16:54",
"url": "https://files.pythonhosted.org/packages/ba/2c/29816f210f5630000319441fa9200e602e0720e69492aad6440e32cd2bcc/projenv-1.1.2.zip"
}
],
"1.1.3": [
{
"comment_text": "",
"digests": {
"md5": "1b92e4708597240cdf79ae5997d90124",
"sha256": "a1d4d689f79650543ae67dc2ddbdc384d0e78872b77f2e52e015f21d9d05fceb"
},
"downloads": -1,
"filename": "projenv-1.1.3.zip",
"has_sig": false,
"md5_digest": "1b92e4708597240cdf79ae5997d90124",
"packagetype": "bdist_wheel",
"python_version": "3.4",
"requires_python": null,
"size": 25018,
"upload_time": "2015-11-22T03:26:17",
"url": "https://files.pythonhosted.org/packages/43/61/517f4ccb663bacbedeb337a37bc4e64c565e1bdf5cc04be2500575534738/projenv-1.1.3.zip"
}
],
"2.0.0": [
{
"comment_text": "",
"digests": {
"md5": "0de0662e26484a1ba602484b8cb7bb3a",
"sha256": "0c782326dd67c26cb6a72424216419e3d59146627670df4b91021d46be910e45"
},
"downloads": -1,
"filename": "projenv-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "0de0662e26484a1ba602484b8cb7bb3a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26131,
"upload_time": "2016-10-17T04:45:34",
"url": "https://files.pythonhosted.org/packages/c6/9e/1b14a2eef7c58639e868e9172e1cf5393434407807e44e91ebf761c656b6/projenv-2.0.0.tar.gz"
}
],
"2.0.1": [
{
"comment_text": "",
"digests": {
"md5": "e18238aa2adbe3747542c24de32a0f8a",
"sha256": "597601c068f1490cdd0b46b262522e943866184c14f08fa1ef5da95876154b37"
},
"downloads": -1,
"filename": "projenv-2.0.1.tar.gz",
"has_sig": false,
"md5_digest": "e18238aa2adbe3747542c24de32a0f8a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26174,
"upload_time": "2016-10-19T00:14:22",
"url": "https://files.pythonhosted.org/packages/97/66/5f64ea12d2168b8cc38ac5a5b62efa0a0499a20a328e1c1657c033665837/projenv-2.0.1.tar.gz"
}
],
"2.0.2": [
{
"comment_text": "",
"digests": {
"md5": "8de4fa916f632409ec7444cb9ee74575",
"sha256": "274f1cfdff9ab415d85c7f44b221bc4e12e5dd1e0086f662ce081204923c7f67"
},
"downloads": -1,
"filename": "projenv-2.0.2.tar.gz",
"has_sig": false,
"md5_digest": "8de4fa916f632409ec7444cb9ee74575",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26415,
"upload_time": "2017-01-19T15:24:20",
"url": "https://files.pythonhosted.org/packages/27/14/175515a7cd05f0e4b106b152569eb75ae12915fce827d2f704811be5e604/projenv-2.0.2.tar.gz"
}
],
"2.0.3": [
{
"comment_text": "",
"digests": {
"md5": "f2e7c529e991250f032498f58571238b",
"sha256": "560d76758bfd66aed29d04b697a01243a64cadfbd6971da70cd422011f688567"
},
"downloads": -1,
"filename": "projenv-2.0.3.tar.gz",
"has_sig": false,
"md5_digest": "f2e7c529e991250f032498f58571238b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26500,
"upload_time": "2017-01-19T15:56:43",
"url": "https://files.pythonhosted.org/packages/18/57/e0f3b9aec1404fa29e94d8b9e154b80faa55635f22731ea2bc41178d51bd/projenv-2.0.3.tar.gz"
}
],
"2.0.4": [
{
"comment_text": "",
"digests": {
"md5": "b7f37616aacde5360fca2e8a1ae3189c",
"sha256": "193fa245e27fed7bceac15305916a5b80c8571a8f18f0c381ed70856044d71c4"
},
"downloads": -1,
"filename": "projenv-2.0.4.tar.gz",
"has_sig": false,
"md5_digest": "b7f37616aacde5360fca2e8a1ae3189c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26607,
"upload_time": "2017-02-18T05:42:20",
"url": "https://files.pythonhosted.org/packages/b9/48/c5fc84ebb0484a6e0887e66af869b275ec1ca7242090974caf4a9c5e4707/projenv-2.0.4.tar.gz"
}
],
"2.0.5": [
{
"comment_text": "",
"digests": {
"md5": "ba8be231b17e6e9c1cd616465a73d491",
"sha256": "e33a3e1c0137ac7f99831b366b63303e2ccab542eeaaeb7ed216aa4c842292cf"
},
"downloads": -1,
"filename": "projenv-2.0.5.tar.gz",
"has_sig": false,
"md5_digest": "ba8be231b17e6e9c1cd616465a73d491",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 38725,
"upload_time": "2017-03-23T16:52:56",
"url": "https://files.pythonhosted.org/packages/12/0b/d3ead73d007f2aea879aac3d7e6a63c16ea5ace509b914897e524969d89f/projenv-2.0.5.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "ba8be231b17e6e9c1cd616465a73d491",
"sha256": "e33a3e1c0137ac7f99831b366b63303e2ccab542eeaaeb7ed216aa4c842292cf"
},
"downloads": -1,
"filename": "projenv-2.0.5.tar.gz",
"has_sig": false,
"md5_digest": "ba8be231b17e6e9c1cd616465a73d491",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 38725,
"upload_time": "2017-03-23T16:52:56",
"url": "https://files.pythonhosted.org/packages/12/0b/d3ead73d007f2aea879aac3d7e6a63c16ea5ace509b914897e524969d89f/projenv-2.0.5.tar.gz"
}
]
}