{ "info": { "author": "Christophe Mehay", "author_email": "cmehay@nospam.student.42.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: System :: Installation/Setup" ], "description": "# pyentrypoint\n\n__pyentrypoint__ is a tool written in `Python` to manage Docker containers `ENTRYPOINT`.\n\nThis tool avoids writing shell scripts to:\n - Handle commands and sub commands\n - Identify linked containers\n - Generate configuration using `jinja2` templates\n - Run commands before starting service\n - Reload service when configuration has changed\n\n[![Documentation Status](https://readthedocs.org/projects/pyentrypoint/badge/?version=latest)](http://pyentrypoint.readthedocs.io/en/latest/?badge=latest) [![Build Status](https://travis-ci.org/cmehay/pyentrypoint.svg?branch=master)](https://travis-ci.org/cmehay/pyentrypoint)\n\n## Usages\n\n### Install in container\n\nAll you need to do is to setup a `yaml` file called `entrypoint-config.yml` and to install __pyentrypoint__ in your `Dockerfile` using pip.\n\n```dockerfile\nFROM debian\n# Installing git for example\nRUN apt-get update && apt-get install git python-pip -y\n# Install pyentrypoint\nRUN pip install pyentrypoint\n# Copy config file in the current WORKDIR\nCOPY entrypoint-config.yml .\n# Set ENTRYPOINT\nENTRYPOINT ['pyentrypoint']\n# git will be the default command\nCMD ['git']\n```\n\n```dockerfile\nFROM alpine\n# Installing git for example\nRUN apk add --update py-pip git\n# Install pyentrypoint\nRUN pip install pyentrypoint\n# Copy config file in the current WORKDIR\nCOPY entrypoint-config.yml .\n# Set ENTRYPOINT\nENTRYPOINT ['pyentrypoint']\n# git will be the default command\nCMD ['git']\n```\n\n#### Using docker-image\n\n```dockerfile\nFROM goldy/pyentrypoint:python3\n\n# ONBUILD statement add entrypoint-config.yml in current directories\n\n```\n\nAvailable with many flavours:\n\n- `goldy/pyentrypoint:python2`\n- `goldy/pyentrypoint:python3`\n- `goldy/pyentrypoint:python2-alpine`\n- `goldy/pyentrypoint:python3-alpine`\n\n### Working examples\n - [Tor hidden service](https://github.com/cmehay/docker-tor-hidden-service)\n\n### Setup entrypoint\n\nThis is an example of `entrypoint-config.yml` file.\n\n```yaml\n# Entrypoint configuration example\n\n# This entry should reflect CMD in Dockerfile\ncommand: git\n\n# This is a list with some subcommands to handle\n# when CMD is not `git` here.\n# By default, all args started with hyphen are handled.\nsubcommands:\n - \"-*\"\n - clone\n - init\n - ls-files\n # etc...\n\n# User and group to run the cmd.\n# Can be name or uid/gid.\n# Affect only command handled.\n# Dockerfile USER value by default.\nuser: 1000\ngroup: 1000\n\n# These files should exist (ADD or COPY)\n# and should be jinja templated.\n# Note: if config files end with \".tpl\", the extension will be removed.\nconfig_files:\n - /etc/gitconfig\n - .ssh/config.tpl # Will apply to \".ssh/config\"\n - /tmp/id_rsa: .ssh/id_rsa # Will apply \"/tmp/id_rsa\" template to \".ssh/id_rsa\"\n\n\n# These environment variables will be wiped before\n# exec command to keep them secret\n# CAUTION: if the container is linked to another one,\n# theses variables will passed to it anyway\nsecret_env:\n - SSHKEY\n - '*' # Support globbing, all environment will be wiped\n\n# Links are handled here\n# Port, name, protocol or env variable can be used to identify the links\n# Raise an error if the link could not be identified\n# This is not supported when using docker network or docker-compose v2.\nlinks:\n 'ssh':\n port: 22\n name: 'ssh*'\n protocol: tcp\n # env can be list, dictionary or string\n env:\n FOO: bar\n # Single doesn't allow multiple links for this ID\n # false by default\n single: true\n # Set to false to get optional link\n # true by default\n required: true\n\n# Commands to run before applying configuration\npre_conf_commands:\n - echo something > to_this_file\n\n# commands to run after applying configuration\npost_conf_commands:\n - echo \"something else\" > to_this_another_file\n\npost_run_commands:\n - echo run commands after started service\n\n# Reload service when configuration change by sending a signal to process\nreload:\n signal: SIGHUP # Optional, signal to send, default is SIGHUP\n pid: 1 # Optional, pid to send signal, default is 1\n watch_config_files: true # Optional, watch defined config files, default True\n files: # Optional, list of files to watch\n - /etc/conf/to/watch\n - /file/support/*.matching\n# can also be enabled like this:\nreload: true\n\n\n# Cleanup environment from variables created by linked containers\n# before running command (True by default)\nclean_env: true\n\n# Enable debug to debug\ndebug: true\n\n# Do not output anything except error\nquiet: false\n```\n\n### Config templates\n\nYou can generate configuration for your service with jinja2 template.\n\n**`links` and `containers` are not supported with docker network and docker-compose v2.**\n\nHere is an example for an hypothetical ssh config file:\n\n```jinja\nhost server:\n hostname {{links.ssh.ip}}\n port {{links.ssh.port}}\n```\n\nTemplates will be replaced with ip address and port of the identified link. All links can be accessed from `links.all`, this is a tuple of links you can iterate on it.\n\n```jinja\n{% for link in links.all %}\nhost {{link.names[0]}}\n hostname {{link.ip}}\n port {{links.port}}\n{% endfor %}\n```\n\nIf you change the option `single` to `false` in the `entrypoint-config.yml`, the identified link `ssh` will become a tuple of links. You must iterate on it in the `jinja` template.\n\n```jinja\n{% for link in links.ssh %}\nhost {{link.names[0]}}\n hostname {{link.ip}}\n port {{links.port}}\n{% endfor %}\n```\n\nAccessing environment in template.\n\n```jinja\n{% if 'SSHKEY in env' %}\n{{env['SSHKEY']}}\n{% endfor %}\n```\n\n### Accessible objects\n\nYou have 4 available objects in your templates.\n\n - `config`\n - `links`\n - `containers`\n - `environ`\n - `yaml`\n - `json`\n\n#### config\n\n`Config` reflect the config file. You can retrieve any setup in this object.\n\n(see `config.py`)\n\n#### links\n\n**Not supported with docker network and docker-compose v2**\n\n`Links` handles `Link` objects. You can identify links using wildcard patterns in the configuration file.\n\n`link` is related to one physical link (one ip and one port).\n\n`link` handles the following attributes:\n - `ip`\n - link ip\n - `port`\n - link port (integer)\n - `environ`\n - related container environment\n - `protocol`\n - link protocol (`tcp` or `udp`)\n - `uri`\n - link URI (example: `tcp://10.0.0.3:80`)\n - `names`\n - tuple of related container names\n\n#### containers\n\n**Not supported with docker network and docker-compose v2**\n\n`containers` handles a tuple of `container` object.\n\n`container` handles the following attributes:\n - `ip`\n - container ip\n - `environ`\n - container environment\n - `names`\n - List of containers names\n - Names are sorted by length, but container ID will be the last element.\n - `id`\n - Hexadecimal container ID (if available, empty string else)\n - `links`\n - Tuple of `link` objects related to this container\n\n#### environ\n`environ` is the environment of the container (os.environ).\n\n`env` is an alias to `environ`.\n\n#### yaml and json\n\n`yaml` and `json` objects are respectively an import of [`PyYAML`](http://pyyaml.org/) and [`json`](https://docs.python.org/2/library/json.html) modules.\n\nThey are useful to load and dump serialized data from environment.\n\n```jinja\n# Here yaml is present in SETUP_YAML environment variable\n{% set data = yaml.load(env['SETUP_YAML'])%}\n{{data['param']}}\n\n# Here json is present in SETUP_JSON environment variable\n{% set data = json.loads(env['SETUP_JSON'])%}\n{{data['param']}}\n```\n\n## Setup\n\nSome setups can be overridden using environment variables.\n\n- `ENTRYPOINT_CONFIG` overrides path of `entrypoint-config.yml` file.\n- `ENTRYPOINT_FORCE` is applying configuration and runs pre and post conf commands even if the `command` provided is not handled.\n- `ENTRYPOINT_PRECONF_COMMAND` run an extra pre conf shell command after all pre conf commands.\n- `ENTRYPOINT_POSTCONF_COMMAND` run an extra post conf shell command after all post conf commands.\n- `ENTRYPOINT_DEBUG` enables debug logs.\n- `ENTRYPOINT_RAW` does not use logging to display pre and post conf commands.\n This can be useful if output is serialized.\n- `ENTRYPOINT_DISABLE_RELOAD` disable reload system even if it is enabled in `entrypoint-config.yml`.\n- `ENTRYPOINT_USER` overrides `user` in config.\n- `ENTRYPOINT_GROUP` overrides `group` in config.\n- `ENTRYPOINT_DISABLE_SERVICE` exits container with 0 before doing anything. Useful to disable container using environement.\n\n\n\n### Running Tests\n\nTo run tests, ensure that `docker-compose` and `make` are installed and run\n\n```shell\n$ make test\n```", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/cmehay/pyentrypoint", "keywords": "", "license": "WTFPL", "maintainer": "", "maintainer_email": "", "name": "pyentrypoint", "package_url": "https://pypi.org/project/pyentrypoint/", "platform": "", "project_url": "https://pypi.org/project/pyentrypoint/", "project_urls": { "Homepage": "http://github.com/cmehay/pyentrypoint" }, "release_url": "https://pypi.org/project/pyentrypoint/0.5.2/", "requires_dist": null, "requires_python": "", "summary": "pyentrypoint manages entrypoints in Docker containers.", "version": "0.5.2" }, "last_serial": 5202442, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "845ab5e607fd833998b238f1860dd676", "sha256": "a21270553764f95bddc755c49aaa8118576d3a07ce091f06b958baedac8a1f3f" }, "downloads": -1, "filename": "pyentrypoint-0.1.1.tar.gz", "has_sig": false, "md5_digest": "845ab5e607fd833998b238f1860dd676", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8670, "upload_time": "2016-02-21T22:25:35", "url": "https://files.pythonhosted.org/packages/60/c8/6daf1fd55adcf2dc024a128bb5d43f59ff6cb59f66f9c9be68fe23527b82/pyentrypoint-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "5b7ffc9880a79145b3c683b8c6934693", "sha256": "5e9453f87554bf90b4f1a4e90e8a68eff0ced7bfd7d3c6df60b861a3548eed25" }, "downloads": -1, "filename": "pyentrypoint-0.1.10.tar.gz", "has_sig": false, "md5_digest": "5b7ffc9880a79145b3c683b8c6934693", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8139, "upload_time": "2016-02-28T23:34:52", "url": "https://files.pythonhosted.org/packages/84/7e/3195320e97c456d1f3e3c1601f68f9ecbf82c7dc825bc4ee4ad9313e2803/pyentrypoint-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "3fcaf9ff28eec7c39622c930d396049e", "sha256": "774c8d2f2b162a3e02cfa408e7e732333671a3756e084cd1df7b5ce642ce3ac9" }, "downloads": -1, "filename": "pyentrypoint-0.1.11.tar.gz", "has_sig": false, "md5_digest": "3fcaf9ff28eec7c39622c930d396049e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8154, "upload_time": "2016-02-29T16:27:11", "url": "https://files.pythonhosted.org/packages/84/9c/d760d175a8fb1109a27931b9dc641728ccbec22b2baaf26a4328e18fc46f/pyentrypoint-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "3b12cadb9d42486ac1790672d867de08", "sha256": "10df48ca40d52a249417e1009d135c4848069f0cc541b4c8067e96e96d95524b" }, "downloads": -1, "filename": "pyentrypoint-0.1.12.tar.gz", "has_sig": false, "md5_digest": "3b12cadb9d42486ac1790672d867de08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8211, "upload_time": "2016-03-05T00:55:04", "url": "https://files.pythonhosted.org/packages/09/97/1fcebbd4316a788c79017a5b61422982b0e8aca383ab1253ccfa1c48b2a0/pyentrypoint-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "91b82f02fb99fa3ce2133bd08308c916", "sha256": "921606e8642d7159267dccc842c76e581cee66d3b40c7dc4c73fc507cc71078f" }, "downloads": -1, "filename": "pyentrypoint-0.1.13.tar.gz", "has_sig": false, "md5_digest": "91b82f02fb99fa3ce2133bd08308c916", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8217, "upload_time": "2016-03-05T01:21:31", "url": "https://files.pythonhosted.org/packages/b5/a5/b53c69435b76aee8ef7497307865949afc6180a058a645673d9dddc7e0f6/pyentrypoint-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "2973f64b07978ab2a45d9ff2220c9851", "sha256": "c927233452ee709f3b0ad174614a1e822ac4227a1e40c20622caefe27689a026" }, "downloads": -1, "filename": "pyentrypoint-0.1.14.tar.gz", "has_sig": false, "md5_digest": "2973f64b07978ab2a45d9ff2220c9851", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8293, "upload_time": "2016-03-06T15:44:18", "url": "https://files.pythonhosted.org/packages/d9/c1/8da7fa075dc6fac504eb5c065f5e93bc82ba46cece66295922275c0e1587/pyentrypoint-0.1.14.tar.gz" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "5a9150548a87514bdc493db2dc9088b7", "sha256": "d163b349ce458c44562a582dc59ea4e5991a07d32ed09c108a261f1e92d3bef6" }, "downloads": -1, "filename": "pyentrypoint-0.1.16.tar.gz", "has_sig": false, "md5_digest": "5a9150548a87514bdc493db2dc9088b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8374, "upload_time": "2016-03-07T02:10:00", "url": "https://files.pythonhosted.org/packages/4c/dc/0f7c428422c8dcae71d41c58236c684fb47939e6aa11909a018468297c2a/pyentrypoint-0.1.16.tar.gz" } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "3dabdb7fce6eafff29b668ad7cd789c6", "sha256": "dc71ddf18bf78e032dc47955fb9f286879a2cf942eb4137e1db7d46f40396df0" }, "downloads": -1, "filename": "pyentrypoint-0.1.17.tar.gz", "has_sig": false, "md5_digest": "3dabdb7fce6eafff29b668ad7cd789c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8557, "upload_time": "2016-03-07T23:15:41", "url": "https://files.pythonhosted.org/packages/c9/11/603e76dc438254c544024dd4f1c557fbbf3702b0a79334aad772cdc8dd03/pyentrypoint-0.1.17.tar.gz" } ], "0.1.18": [ { "comment_text": "", "digests": { "md5": "e971dec18c6c62f276b9e1e9a6916d9d", "sha256": "a5c2866b1c4b13b3ffc7ae904c4ecd710365b84ee96f11fdf2b58478257ff7a5" }, "downloads": -1, "filename": "pyentrypoint-0.1.18.tar.gz", "has_sig": false, "md5_digest": "e971dec18c6c62f276b9e1e9a6916d9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8573, "upload_time": "2016-03-07T23:39:25", "url": "https://files.pythonhosted.org/packages/62/49/ab87ee5b93798cbdbecf70c6a90cddefb3ad71154c3c6442518fd4262796/pyentrypoint-0.1.18.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f3a4632c3a3c87445428f21d02158b19", "sha256": "68eea976b1170e036806cbbc1eef6233aafff6f5aa6acf46fc3b7195d8f687da" }, "downloads": -1, "filename": "pyentrypoint-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f3a4632c3a3c87445428f21d02158b19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8614, "upload_time": "2016-02-21T22:55:50", "url": "https://files.pythonhosted.org/packages/e4/cc/7220739d85899cdfb32d7fa47dd5f7dd70276b0f30ee6b1374b24709365a/pyentrypoint-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "66e522f2eb184ca3987e3f608f3653b7", "sha256": "e4cf1d5667c347e9a0f86b4f71219aff0b2e69ec3f1d05cea572eb055e293be7" }, "downloads": -1, "filename": "pyentrypoint-0.1.3.tar.gz", "has_sig": false, "md5_digest": "66e522f2eb184ca3987e3f608f3653b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9199, "upload_time": "2016-02-21T23:00:56", "url": "https://files.pythonhosted.org/packages/13/06/7eb54eb09be2b3e260132752f983f38ba87db5c3e30f1c44a165bd6f7cb7/pyentrypoint-0.1.3.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "46ea0b95c440a7a72a1ebe5277e3e584", "sha256": "e806e8409cc51aeac7d3c9b38f30bf11c6b29fb5a2037068b48c124dc2cbc580" }, "downloads": -1, "filename": "pyentrypoint-0.1.9.tar.gz", "has_sig": false, "md5_digest": "46ea0b95c440a7a72a1ebe5277e3e584", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8107, "upload_time": "2016-02-23T00:47:16", "url": "https://files.pythonhosted.org/packages/de/44/40a03f3a30d4880690cf5b019ddf9b06cc4ba60ebbf0c24efef167b5b56c/pyentrypoint-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9f47fe3f940943b54c4aae21780c4a51", "sha256": "f0e0054053b5fa3f4e2bdd314d6d2e6c2a0c46ccefebbac2902938509fb71e73" }, "downloads": -1, "filename": "pyentrypoint-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9f47fe3f940943b54c4aae21780c4a51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9133, "upload_time": "2016-03-14T16:22:24", "url": "https://files.pythonhosted.org/packages/4f/3c/ef57175a2b380b39ea601e8460dd4f869f6e24a6febb6f3f731b8c11bb6f/pyentrypoint-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "0f6ca78c87c1b8fae102b5f347ad2aa9", "sha256": "7f3008dcdf762ace1a9d80ad72de4f284afd0bca7cfa862825cf66a62309945e" }, "downloads": -1, "filename": "pyentrypoint-0.2.1.tar.gz", "has_sig": false, "md5_digest": "0f6ca78c87c1b8fae102b5f347ad2aa9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9124, "upload_time": "2016-03-14T16:25:50", "url": "https://files.pythonhosted.org/packages/cc/c3/033177020fdb31157f8af0cf1c98f715966b30f16cb232e0d790634b0a9a/pyentrypoint-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "6266d3f05091aef4a0aaf742888e9714", "sha256": "ee47be5a5a22679803c31486d9fc0a017956094261844210380b92e5fa650934" }, "downloads": -1, "filename": "pyentrypoint-0.2.2.tar.gz", "has_sig": false, "md5_digest": "6266d3f05091aef4a0aaf742888e9714", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9421, "upload_time": "2016-03-21T18:38:12", "url": "https://files.pythonhosted.org/packages/13/f5/fd038ba3a6dc96c4978341c568d5801d44b56f097ec480c2e066aba35f95/pyentrypoint-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "49996493251b6328a3d723a2bcd4f461", "sha256": "b86060082b00da24a7cc97c5aed97341e01d9bb6d1a219be100868b66cfe5142" }, "downloads": -1, "filename": "pyentrypoint-0.2.3.tar.gz", "has_sig": false, "md5_digest": "49996493251b6328a3d723a2bcd4f461", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9532, "upload_time": "2016-03-27T19:06:38", "url": "https://files.pythonhosted.org/packages/9e/49/c978f0912f59981b7237a3b89fb0dbb7294c11d040b1e3c41eeca0e27856/pyentrypoint-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6fe876a35ed8eac7d4352210c015e605", "sha256": "2ba430fa86435f6ae7cb8814aa0f427fa165d4e49d5d7618d1b779617e58e804" }, "downloads": -1, "filename": "pyentrypoint-0.3.0.tar.gz", "has_sig": false, "md5_digest": "6fe876a35ed8eac7d4352210c015e605", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9711, "upload_time": "2016-04-25T21:29:59", "url": "https://files.pythonhosted.org/packages/05/b7/3c9961970e10242b29c8ad9e363f10d6906a3ee5fd369b1ac27ec9087e35/pyentrypoint-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "dca02fdc7efe0170c221f0ffe0043597", "sha256": "59b4ef477736f17941d737b382bbec1e1a00ca88161f099549bd888e5b1d39ca" }, "downloads": -1, "filename": "pyentrypoint-0.3.1.tar.gz", "has_sig": false, "md5_digest": "dca02fdc7efe0170c221f0ffe0043597", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9819, "upload_time": "2016-04-29T22:58:40", "url": "https://files.pythonhosted.org/packages/15/0b/7c784f8b9333cd087e791e7644aa3ccac4bd04615cca64a9ac2d044ce9e9/pyentrypoint-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "daafb40494e4f7c07466676730ca2377", "sha256": "17ff89d69a7b8faaae0de142f6c6663c95002ba0e4d485fbc1ad99d7bbe17a0d" }, "downloads": -1, "filename": "pyentrypoint-0.3.2.tar.gz", "has_sig": false, "md5_digest": "daafb40494e4f7c07466676730ca2377", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9994, "upload_time": "2016-05-07T11:59:01", "url": "https://files.pythonhosted.org/packages/2e/04/5fcdd357de3e36fccd30c0eeac40ad6ee312fb086db080e9f8b7427a2fd5/pyentrypoint-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "ce387e13eb0e643c90de86c905c6dde2", "sha256": "a51e17f921513455555b89b581842a46578760bf19081bc7eea4dc787f034b2c" }, "downloads": -1, "filename": "pyentrypoint-0.3.3.tar.gz", "has_sig": false, "md5_digest": "ce387e13eb0e643c90de86c905c6dde2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10253, "upload_time": "2016-05-08T16:31:21", "url": "https://files.pythonhosted.org/packages/16/e2/4b66d29e67ad04cb555494b84746cb2e4831079a476ee642122502a44ae4/pyentrypoint-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "6570c7dc612bda55d83867cfe087e96b", "sha256": "2c2ca453d45bb1d5ee10c3f32eeb938dfe4abe299245e45a9c3fd57320887049" }, "downloads": -1, "filename": "pyentrypoint-0.3.4.tar.gz", "has_sig": false, "md5_digest": "6570c7dc612bda55d83867cfe087e96b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10339, "upload_time": "2016-05-11T22:32:20", "url": "https://files.pythonhosted.org/packages/1d/7b/0a4fe6ff56361d584c0baed45fdf21ccae6fa5a0c0a665fbfabb090a548c/pyentrypoint-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "1233d42a2fdbf2b6e35553ecb974efea", "sha256": "928bde32ffb31db823acd5e20f794d13c484d5e8efd1bbad212b89538bba32fe" }, "downloads": -1, "filename": "pyentrypoint-0.3.5.tar.gz", "has_sig": false, "md5_digest": "1233d42a2fdbf2b6e35553ecb974efea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10366, "upload_time": "2016-05-19T21:50:03", "url": "https://files.pythonhosted.org/packages/66/7a/fc7027e5e5d26fc3cf4e7bdb517c4ebaea133d7bbf31ed0cf6e40a6627d2/pyentrypoint-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "6a7d3b96c3941c1474255e243f1f70a5", "sha256": "7beb11b03b8563436681009e07b7643b0c63b99c9c38da4173c5ff5dfd162853" }, "downloads": -1, "filename": "pyentrypoint-0.3.6.tar.gz", "has_sig": false, "md5_digest": "6a7d3b96c3941c1474255e243f1f70a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10440, "upload_time": "2016-05-30T21:40:01", "url": "https://files.pythonhosted.org/packages/03/b4/e29c2ed4bbc9110ffa304f69b50a505328b1c8de6cc5163bcd0eb4bcfc95/pyentrypoint-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "79cd5b766dffb346d28c3cba50c3c844", "sha256": "0bf06ab244a9ca9d39b083c3927dc0aaed9299214c9a18a8701baa5bd7963c32" }, "downloads": -1, "filename": "pyentrypoint-0.3.7.tar.gz", "has_sig": false, "md5_digest": "79cd5b766dffb346d28c3cba50c3c844", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10532, "upload_time": "2016-07-02T14:27:14", "url": "https://files.pythonhosted.org/packages/85/9e/8160fdf103c4002cf01046b1a2b4126bed4fc87942be292cd38677e8fb5c/pyentrypoint-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "be8093658a40a518b7c0eba8bc339a6f", "sha256": "a53a40912a7a2309b6d97bf2d414edf5dfd2cda49e7057c387426f73c10569fc" }, "downloads": -1, "filename": "pyentrypoint-0.3.8.tar.gz", "has_sig": false, "md5_digest": "be8093658a40a518b7c0eba8bc339a6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10677, "upload_time": "2016-09-23T12:13:00", "url": "https://files.pythonhosted.org/packages/88/c3/ba8503537bf1ab0386c683f429d9653099ca399bddcc539141e943646a3b/pyentrypoint-0.3.8.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "00a0629c287aeffab0a4c5e9c1a56672", "sha256": "bc2567e71f37aa0ca4a470d304b521c342dda9b05740cc494b0d0dbae600cde4" }, "downloads": -1, "filename": "pyentrypoint-0.4.0.tar.gz", "has_sig": false, "md5_digest": "00a0629c287aeffab0a4c5e9c1a56672", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11911, "upload_time": "2016-10-03T20:45:16", "url": "https://files.pythonhosted.org/packages/03/c0/2e17a86a695ee692de2c516faa3f435e0c03b60387c29ad0ed38396b2298/pyentrypoint-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "5a12baff487953f0b53269ff3f5081d1", "sha256": "ef567fd625fd6776c6da2142c98fa170e4eb915f920991f813d947f73e0f5687" }, "downloads": -1, "filename": "pyentrypoint-0.4.1.tar.gz", "has_sig": false, "md5_digest": "5a12baff487953f0b53269ff3f5081d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12165, "upload_time": "2016-11-19T16:22:10", "url": "https://files.pythonhosted.org/packages/e9/1d/7ecd84db1895d434b675c97e35285c216893022cc5ba2840cad3eaf7c293/pyentrypoint-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "a7caf72c9537439f292bcf40eee1c2bf", "sha256": "a94c96914642b11677c261aeb47fbac244b68d29565d5b8cd72feee43414373e" }, "downloads": -1, "filename": "pyentrypoint-0.4.2.tar.gz", "has_sig": false, "md5_digest": "a7caf72c9537439f292bcf40eee1c2bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12151, "upload_time": "2016-11-19T16:28:36", "url": "https://files.pythonhosted.org/packages/c5/fb/be0306f7efd3259995f6fa4107dfa83d28db292714f1fa610399f8311615/pyentrypoint-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "96b95abadac0daca804d3ab05d97bb50", "sha256": "2c259dc4c83dbebdcd32984e15ebc4c790fd143dfadd0be7aa52076e35ab6948" }, "downloads": -1, "filename": "pyentrypoint-0.4.3.tar.gz", "has_sig": false, "md5_digest": "96b95abadac0daca804d3ab05d97bb50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12283, "upload_time": "2016-11-23T11:52:54", "url": "https://files.pythonhosted.org/packages/74/7b/2422d30cf7e475d32dc70d9df5fd52f43b46274c56e60a57cc634389dd74/pyentrypoint-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "97837859d2ef6bca8a99454760f10461", "sha256": "c404ec8eece1f735a23e53098857c00012aafc6f309f0782a0ff880591a78f12" }, "downloads": -1, "filename": "pyentrypoint-0.4.4.tar.gz", "has_sig": false, "md5_digest": "97837859d2ef6bca8a99454760f10461", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12417, "upload_time": "2016-11-27T01:19:24", "url": "https://files.pythonhosted.org/packages/85/bb/1c8756b3366bc5b1595ab843935766a385bf29c743326902da894145baed/pyentrypoint-0.4.4.tar.gz" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "9f59c65168228dc473bb9d5a668ee5cd", "sha256": "39dd70f88ab3fc2dad50ad4699ad5eb7befc4c47e45dd70c0dc67013307eff85" }, "downloads": -1, "filename": "pyentrypoint-0.4.6.tar.gz", "has_sig": false, "md5_digest": "9f59c65168228dc473bb9d5a668ee5cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12929, "upload_time": "2016-12-04T20:14:00", "url": "https://files.pythonhosted.org/packages/39/4d/706491a28d2d5afda3741faa03168c55601b999936cc814834ccf7405994/pyentrypoint-0.4.6.tar.gz" } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "fa48dfb94bfd4ec8a69ce3d2a2629b4f", "sha256": "abe5037f0d0c90941c963c14b6dc94cefdcff86c5b0651c2d6b978a371f9a9e7" }, "downloads": -1, "filename": "pyentrypoint-0.4.7.tar.gz", "has_sig": false, "md5_digest": "fa48dfb94bfd4ec8a69ce3d2a2629b4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13160, "upload_time": "2016-12-27T09:43:11", "url": "https://files.pythonhosted.org/packages/0e/55/11a9fb259865fb78b4443c5a3cddc58906055049001426422d7b83798f5b/pyentrypoint-0.4.7.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "a76b9b09d8a34f34e4ae93e266e2a5cc", "sha256": "486c5738a1986c41c932cd412bc58c95dfd7e9a0c50300a5cc328a399a3290bc" }, "downloads": -1, "filename": "pyentrypoint-0.5.0.tar.gz", "has_sig": false, "md5_digest": "a76b9b09d8a34f34e4ae93e266e2a5cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13353, "upload_time": "2016-12-30T19:28:44", "url": "https://files.pythonhosted.org/packages/f2/b6/3253f5c930cd53c7bb137fc0d9fac4feaff617c64c8373aa746d7528ba97/pyentrypoint-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "edf9b5acdd0477034eec13d7919a36e4", "sha256": "c62c59b8b5bd65e785d97425c79239a6014a94d364ba102973028ac8b1f82858" }, "downloads": -1, "filename": "pyentrypoint-0.5.1.tar.gz", "has_sig": false, "md5_digest": "edf9b5acdd0477034eec13d7919a36e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13441, "upload_time": "2017-08-28T07:50:56", "url": "https://files.pythonhosted.org/packages/40/0b/945c1b9a2a80b1c4f2bbface776c82fc9c6c0cd5034204c11ff2124ea3d2/pyentrypoint-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "58b60e964bf6f4479f3207edc7c80c7d", "sha256": "5f2f74b3d63b55a54c53a88f3e1c042b37c9e6b139150c2e1b3a5ff8f948de0b" }, "downloads": -1, "filename": "pyentrypoint-0.5.2.tar.gz", "has_sig": false, "md5_digest": "58b60e964bf6f4479f3207edc7c80c7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15792, "upload_time": "2019-04-29T09:41:40", "url": "https://files.pythonhosted.org/packages/19/00/1d8bf3708cb4726e161dfc3c0f7c24cb7c355429fcff42d7f61f0329f51f/pyentrypoint-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "58b60e964bf6f4479f3207edc7c80c7d", "sha256": "5f2f74b3d63b55a54c53a88f3e1c042b37c9e6b139150c2e1b3a5ff8f948de0b" }, "downloads": -1, "filename": "pyentrypoint-0.5.2.tar.gz", "has_sig": false, "md5_digest": "58b60e964bf6f4479f3207edc7c80c7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15792, "upload_time": "2019-04-29T09:41:40", "url": "https://files.pythonhosted.org/packages/19/00/1d8bf3708cb4726e161dfc3c0f7c24cb7c355429fcff42d7f61f0329f51f/pyentrypoint-0.5.2.tar.gz" } ] }