{ "info": { "author": "Bogdan Mustiata", "author_email": "bogdan.mustiata@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Adhesive is a micro BPMN runner written in Python.\n\nYou can easily model complex logic in BPMN, and Adhesive will execute it\nfor you taking care of parallelism, joining, etc. using the standard\nBPMN notation.\n\nSince it\u2019s small, it can easily be embedded in containers, or replace\ncomplex scripts.\n\nInstallation\n============\n\n.. code:: sh\n\n pip install adhesive\n\nGetting Started\n===============\n\nSimple Builds\n-------------\n\nTo create a basic build you just create a file in your project named\n``_adhesive.py``. In it you then declare some tasks. For example:\n\n.. code:: python\n\n import adhesive\n\n @adhesive.task(\"Checkout Code\")\n def checkout_code(context):\n adhesive.scm.checkout(context.workspace)\n\n @adhesive.task(\"Run Build\")\n def run_build(context):\n context.workspace.run(\"mvn clean install\")\n\n adhesive.build()\n\nSince no process was defined, adhesive takes the defined tasks, stitches\nthem in order, and has a process defined as ```` \u2192\n``Checkout Code`` \u2192 ``Run\nBuild`` \u2192 ````.\n\nTo run it simply call ``adhesive`` in the terminal:\n\n.. code:: sh\n\n adhesive\n\nThis is the equivalent of Jenkins stages. But we can do better:\n\nProgrammatic Builds\n-------------------\n\nIn order to use the full programmatic functionalities that adhesive\noffers, you are able to stitch your BPM process manually. You have sub\nprocesses, branching and looping available:\n\n.. code:: python\n\n import adhesive\n import uuid\n\n @adhesive.task(\"Run in parallel item {loop.value}\")\n def context_to_run(context):\n if not context.data.executions:\n context.data.executions = set()\n\n context.data.executions.add(str(uuid.uuid4()))\n\n data = adhesive.process_start()\\\n .branch_start()\\\n .sub_process_start() \\\n .task(\"Run in parallel\",\n loop=\"items\") \\\n .sub_process_end()\\\n .branch_end() \\\n .branch_start() \\\n .sub_process_start() \\\n .task(\"Run in parallel item {loop.value}\",\n loop=\"items\") \\\n .sub_process_end() \\\n .branch_end() \\\n .process_end()\\\n .build(initial_data={\"items\": [1, 2, 3, 4, 5]})\n\n assert len(data.executions) == 10\n\nHere you see the full BPMN power starting to unfold. We create a process\nthat branches out, creates sub processes (sub processes can be looped as\na single unit). Loops are creating execution tokens that also run in\nparallel in the same pool.\n\nNote that you can pass ``initial_data`` into the process, and you can\nalso get the ``context.data`` from the last execution token.\n\nBPMN Process\n------------\n\nLast but not least, adhesive reads BPMN files, and builds the process\ngraph from them. This is particularly good if the process is complex and\nhas a lot of dependencies:\n\n|BPMN Editor|\n\nThe `build of adhesive`_ is modeled as a `BPMN process`_ itself, so we\nload it from the file directly using:\n``adhesive.build_bpmn(\"adhesive-self.bpmn\")``\n\n.. code:: python\n\n import adhesive\n\n @adhesive.task(\"Read Parameters\")\n def read_parameters(context) -> None:\n context.data.run_mypy = False\n context.data.test_integration = True\n\n @adhesive.task(re=r\"^Ensure Tooling:\\s+(.+)$\")\n def gbs_ensure_tooling(context, tool_name) -> None:\n ge_tooling.ensure_tooling(context, tool_name)\n\n # ...\n\n adhesive.build_bpmn(\"adhesive-self.bpmn\")\n\nAs you see steps are parametrizable, and use the data from the task name\ninto the step definition.\n\nDefining BPMN Tasks\n===================\n\nFor example here, we define an implementation of tasks using regex\nmatching, and extracting values:\n\n.. code:: python\n\n @adhesive.task(re=r\"^Ensure Tooling:\\s+(.+)$\")\n def gbs_ensure_tooling(context, tool_name) -> None:\n # ...\n\nOr a user task (interactive form):\n\n.. code:: python\n\n @adhesive.usertask('Publish to PyPI?')\n def publish_to_pypi_confirm(context, ui):\n ui.add_checkbox_group(\n \"publish\",\n title=\"Publish\",\n values=(\n (\"nexus\", \"Publish to Nexus\"),\n (\"pypitest\", \"Publish to PyPI Test\"),\n (\"pypi\", \"Publish to PyPI\"),\n ),\n value=(\"pypitest\", \"pypi\")\n )\n\nDon\u2019t forget, the ``@adhesive.task`` and ``@adhesive.usertask`` are just\ndefining mappings for implementations of the task names available in the\nprocess. Only the ``adhesive.build()`` creates a linear process out of\nthe declaration of the tasks.\n\nAs you notice, there\u2019s always a first parameter named ``context``. The\n``context`` parameter contains the following information:\n\n1. ``task`` - the Task in the graph that\u2019s currently matched against\n this execution.\n\n2. ``task_name`` - The resolved name, with the variables interpolated.\n Matching is attempted *after* the name is resolved.\n\n3. ``data`` - Data that the current execution token contains. This data\n is always cloned across executions, and \\`set\\`s and \\`dict\\`s are\n automatically merged if multiple execution tokens are merged. So you\n have a modifiable copy of the data that you\u2019re allowed to change, and\n is propagated into the following execution tokens.\n\n4. ``loop`` - if the current task is in a loop, the entry contains its\n ``index``, the ``key`` and ``value`` of the items that are iterating,\n and the ``expression`` that was evaluated. Note that loop execution\n happens in parallel since these are simple execution tokens.\n\n5. ``lane`` - the current lane where the tasks belongs. Implicitly it\u2019s\n ``default``.\n\n6. ``workspace`` - a way to interact with a system, and execute\n commands, create files, etc.\n\n``adhesive`` runs all the tasks on a parallel process pool for better\nperformance. This happens automatically.\n\nThe tasks perform the actual work for the build. But in order to have\nthat, we need to be able to execute commands, and create files. For that\nwe have the ``workspace``.\n\nStart Event Messages\n====================\n\nAdhesive supports also start events with messages in the process. Each\nmessage start event, is being processed in its own thread and ``yield``\nresults:\n\n.. code:: python\n\n @adhesive.message('Generate Event')\n def message_generate_event(context):\n for i in range(10):\n yield i\n\n @adhesive.task('Process Event')\n def process_event(context):\n print(f\"event data: {context.data.event}\")\n\nEach yield generates a new event that fires up the connected tasks. The\ndata yielded is present in the ``event`` attribute in the token, for the\nfollowing tasks.\n\nCallback Messages\n-----------------\n\nThe other option to push messages into a process is to use callback\nmessages:\n\n.. code:: python\n\n @adhesive.message_callback('REST: /rest/process-resource')\n def message_rest_rest_process_resource(context, callback):\n @app.route(\"/rest/resource/create\")\n def create_resource():\n callback(Dict({\n \"type\": \"CREATE\"\n }))\n\n return \"Create event fired\"\n\nUsing this we\u2019re able to hook into other systems that have their own\nloop, such as in this case the Flask server, and push messages using the\n``callback``. This approach has also the advantage of not creating new\nthreads for each message endpoint.\n\nConnections\n===========\n\nTasks are linked using connections. In some cases, connections can have\nconditions. Conditions are expressions that when evaluated to ``True``\nwill allow the token to pass the connection. In the connection there is\naccess to the ``task``, ``task_name``, ``data``, ``loop``, ``lane`` and\n``context``, as well as the variables defined in the ``context.data``.\n\nSo if in a task there is defined a data field such as:\n\n.. code:: py\n\n @adhesive.task('prepare data')\n def prepare_data(context):\n context.data.navigation_direction = \"forward\"\n\nThe ``navigation_direction`` can be validated in the condition with any\nof the following:\n\n- ``context.data.navigation_direction == \"forward\"``\n\n- ``data.navigation_direction == \"forward\"``\n\n- ``navigation_direction == \"forward\"``\n\nWorkspace\n=========\n\nWorkspaces are just a way of interacting with a system, running\ncommands, and writing/reading files. Currently there\u2019s support for:\n\n- the local system\n\n- docker containers\n\n- kubernetes\n\n- remote SSH connections\n\nWhen starting ``adhesive`` allocates a default workspace folder in the\nconfigured temp location (implicitly ``/tmp/adhesive``). The\n``Workspace`` API is an API that allows you to run commands, and create\nfiles, taking care of redirecting outputs, and even escaping the\ncommands to be able to easily run them inside docker containers.\n\nThe workspace is available from the cotext directly from the\n``context``, by calling ``context.workspace``.\n\nFor example calling ``context.workspace.run(\u2026\u200b)`` will run the command\non the host where adhesive is running:\n\n.. code:: python\n\n @adhesive.task(\"Run Maven\")\n def build_project(context) -> None:\n context.workspace.run(\"mvn clean install\")\n\nIf we\u2019re interested in the program output we simply do a ``run`` with a\n``capture_stdout`` that returns the output as a string:\n\n.. code:: python\n\n @adhesive.task(\"Test\")\n def gbs_test_linux(context) -> None:\n content = context.workspace.run(\"echo yay\", capture_stdout=True)\n assert content == \"yay\"\n\nor we can use the simplified call with ``run_output`` that guarantees a\n``str`` as result, unlike the ``Optional[str]`` for ``run``:\n\n.. code:: python\n\n @adhesive.task(\"Test\")\n def gbs_test_linux(context) -> None:\n content = context.workspace.run_output(\"echo yay\")\n assert content == \"yay\"\n\nThe ``run`` commands implicitly use ``/bin/sh``, but a custom shell can\nbe specified by passing the ``shell`` argument:\n\n.. code:: python\n\n content = context.workspace.run_output(\"echo yay\", shell=\"/bin/bash\")\n\nDocker Workspace\n----------------\n\nTo create a docker workspace that runs inside a container with the\ntooling you just need to:\n\n.. code:: python\n\n from adhesive.workspace import docker\n\nThen to spin up a container that has the current folder mounted in,\nwhere you\u2019re able to execute commands *inside* the container. You just\nneed to:\n\n.. code:: python\n\n @adhesive.task(\"Test\")\n def gbs_test_linux(context) -> None:\n image_name = 'some-custom-python'\n\n with docker.inside(context.workspace, image_name) as w:\n w.run(\"python -m pytest -n 4\")\n\nThis creates a container using our current context workspace, where we\nsimply execute what we want, using the ``run()`` method. After the\n``with`` statement the container will be teared down automatically.\n\nSSH Workspace\n-------------\n\nIn order to have ssh, make sure you installed ``adhesive`` with SSH\nsupport:\n\n.. code:: sh\n\n pip install -U adhesive[ssh]\n\nTo have a SSH Workspace, it\u2019s again the same approach:\n\n.. code:: python\n\n from adhesive.workspace import ssh\n\nThen to connect to a host, you can just use the ``ssh.inside`` the same\nway like in the docker sample:\n\n.. code:: python\n\n @adhesive.task(\"Run over SSH\")\n def run_over_ssh(context) -> None:\n with ssh.inside(context.workspace,\n \"192.168.0.51\",\n username=\"raptor\",\n key_fileaname=\"/home/raptor/.ssh/id_rsa\") as s:\n s.run(\"python -m pytest -n 4\")\n\nThe parameters are being passed to paramiko, that\u2019s the implementation\nbeneath the ``SshWorkspace``.\n\nKubernetes Workspace\n--------------------\n\nTo run things in pods, it\u2019s the same approach:\n\n.. code:: python\n\n from adhesive.workspace import kube\n\nThen we can create a workspace to run things in kubernetes pods. The\nworkspace, as well as the API, will use the ``kubectl`` command\ninternally.\n\n.. code:: python\n\n @adhesive.task(\"Run things in the pod\")\n def run_in_the_pod(context) -> None:\n with kube.inside(context.workspace,\n pod_name=\"nginx-container\") as pod:\n pod.run(\"ps x\") # This runs in the pod\n\nKubernetes API\n--------------\n\nAdhesive also packs a kubernetes api, that\u2019s available on the\n``adhesive.kubeapi``:\n\n.. code:: python\n\n from adhesive.kubeapi import KubeApi\n\nTo use it, we need to create an instance against a workspace.\n\n.. code:: python\n\n @adhesive.gateway('Determine action')\n def determine_action(context):\n kubeapi = KubeApi(context.workspace,\n namespace=context.data.target_namespace)\n\nLet\u2019s create a namespace:\n\n.. code:: python\n\n kubeapi.create(kind=\"ns\", name=context.data.target_namespace)\n\nOr let\u2019s create a service using the ``kubectl apply`` approach:\n\n.. code:: python\n\n kubeapi.apply(f\"\"\"\n apiVersion: v1\n kind: Service\n metadata:\n name: nginx-http\n labels:\n app: {context.data.target_namespace}\n spec:\n type: ClusterIP\n ports:\n - port: 80\n protocol: TCP\n name: http\n selector:\n app: {context.data.target_namespace}\n \"\"\")\n\nOr let\u2019s get some pods:\n\n.. code:: python\n\n pod_definitions = kubeapi.getall(\n kind=\"pod\",\n filter=f\"execution_id={context.execution_id}\",\n namespace=context.data.target_namespace)\n\nThese returns objects that allow navigating properties as regular python\nattributes:\n\n.. code:: python\n\n new_pods = dict()\n for pod in pod_definitions:\n if not pod.metadata.name:\n raise Exception(f\"Wrong definition {pod}\")\n\n new_pods[pod.metadata.name] = pod.status.phase\n\nYou can also navigate properties that are not existing yet, for example\nto wait for the status of a pod to appear:\n\n.. code:: python\n\n @adhesive.task('Wait For Pod Creation {loop.key}')\n def wait_for_pod_creation_loop_value_(context):\n kubeapi = KubeApi(context.workspace,\n namespace=context.data.target_namespace)\n pod_name = context.loop.key\n pod_status = context.loop.value\n\n while pod_status != 'Running':\n time.sleep(5)\n pod = kubeapi.get(kind=\"pod\", name=pod_name)\n\n pod_status = pod.status.phase\n\nTo get the actual data from the wrappers that the adhesive API creates,\nyou can simply call the ``_raw`` property.\n\nWorkspace API\n-------------\n\nHere\u2019s the full API for it:\n\n.. code:: python\n\n class Workspace(ABC):\n \"\"\"\n A workspace is a place where work can be done. That means a writable\n folder is being allocated, that might be cleaned up at the end of the\n execution.\n \"\"\"\n\n @abstractmethod\n def write_file(\n self,\n file_name: str,\n content: str) -> None:\n pass\n\n @abstractmethod\n def run(self,\n command: str,\n capture_stdout: bool = False) -> Union[str, None]:\n \"\"\"\n Run a new command in the current workspace.\n\n :param capture_stdout:\n :param command:\n :return:\n \"\"\"\n pass\n\n @abstractmethod\n def rm(self, path: Optional[str]=None) -> None:\n \"\"\"\n Recursively remove the file or folder given as path. If no path is sent,\n the whole workspace will be cleared.\n\n :param path:\n :return:\n \"\"\"\n pass\n\n @abstractmethod\n def mkdir(self, path: str=None) -> None:\n \"\"\"\n Create a folder, including all its needed parents.\n\n :param path:\n :return:\n \"\"\"\n pass\n\n @abstractmethod\n def copy_to_agent(self,\n from_path: str,\n to_path: str) -> None:\n \"\"\"\n Copy the files to the agent from the current disk.\n :param from_path:\n :param to_path:\n :return:\n \"\"\"\n pass\n\n @abstractmethod\n def copy_from_agent(self,\n from_path: str,\n to_path: str) -> None:\n \"\"\"\n Copy the files from the agent to the current disk.\n :param from_path:\n :param to_path:\n :return:\n \"\"\"\n pass\n\n @contextmanager\n def temp_folder(self):\n \"\"\"\n Create a temporary folder in the current `pwd` that will be deleted\n when the `with` block ends.\n\n :return:\n \"\"\"\n pass\n\n @contextmanager\n def chdir(self, target_folder: str):\n \"\"\"\n Temporarily change a folder, that will go back to the original `pwd`\n when the `with` block ends. To change the folder for the workspace\n permanently, simply assing the `pwd`.\n :param target_folder:\n :return:\n \"\"\"\n pass\n\nUser Tasks\n==========\n\nIn order to create user interactions, you have user tasks. These define\nform elements that are populated in the ``context.data``, and available\nin subsequent tasks.\n\nWhen a user task is encountered in the process flow, the user is\nprompted to fill in the parameters. Note that the other started tasks\ncontinue running, proceeding forward with the build.\n\nThe ``name`` used in the method call defines the name of the variable\nthat\u2019s in the ``context.data``.\n\nFor example in here we define a checkbox group that allows us to pick\nwhere to publish the package:\n\n.. code:: python\n\n @adhesive.usertask(\"Read User Data\")\n def read_user_data(context, ui) -> None:\n ui.add_input_text(\"user\",\n title=\"Login\",\n value=\"root\")\n ui.add_input_password(\"password\",\n title=\"Password\")\n ui.add_checkbox_group(\"roles\",\n title=\"Roles\",\n value=[\"cyborg\"],\n values=[\"admin\", \"cyborg\", \"anonymous\"])\n ui.add_radio_group(\"disabled\", # title is optional\n values=[\"yes\", \"no\"],\n value=\"no\")\n ui.add_combobox(\"machine\",\n title=\"Machine\",\n values=((\"any\", \"\"),\n (\"win\", \"Windows\"),\n (\"lin\", \"Linux\")))\n\nThis will prompt the user with this form:\n\n|form|\n\nThis data is also available for edge conditions, so in the BPMN modeler\nwe can define a condition such as ``\"pypi\" in context.data.roles``, or\nsince ``data`` is also available in the edge scope:\n``\"pypi\" in data.roles``.\n\nThe other option is simply reading what the user has selected in a\nfollowing task:\n\n.. code:: python\n\n @adhesive.task(\"Register User\")\n def publish_items(context):\n for role in context.data.roles:\n # ...\n\nUser tasks support the following API, available on the ``ui`` parameter,\nthe parameter after the context:\n\n.. code:: python\n\n class UiBuilderApi(ABC):\n def add_input_text(self,\n name: str,\n title: Optional[str] = None,\n value: str = '') -> None:\n\n def add_input_password(self,\n name: str,\n title: Optional[str] = None,\n value: str = '') -> None:\n\n def add_combobox(self,\n name: str,\n title: Optional[str] = None,\n value: Optional[str]=None,\n values: Optional[Iterable[Union[Tuple[str, str], str]]]=None) -> None:\n\n def add_checkbox_group(\n self,\n name: str,\n title: Optional[str]=None,\n value: Optional[Iterable[str]]=None,\n values: Optional[Iterable[Union[Tuple[str, str], str]]]=None) -> None:\n\n def add_radio_group(self,\n name: str,\n title: Optional[str]=None,\n value: Optional[str]=None,\n values: Optional[List[Any]]=None) -> None:\n\n def add_default_button(self,\n name: str,\n title: Optional[str] = None,\n value: Optional[Any] = True) -> None:\n\nCustom Buttons\n--------------\n\nIn order to allow navigation inside the process, the\n``add_default_button`` API exists to permit creation of buttons.\nImplicitly a single button with an ``OK`` label is added to the User\nTask, that when pressed fills the ``context.data`` in the outgoing\nexecution token.\n\nWith ``add_default_button`` we create custom buttons such as ``Back``\nand ``Forward``, or whatever we need in our process. Unlike the default\n``OK`` button, when these are called, they also set in the\n``context.data`` the ``value`` that\u2019s assigned to them. This value we\nuse then further in a ``Gateway``, or simple as a condition on the\noutgoing edges.\n\nThe title is optional, and only if missing it\u2019s build either from the\n``name`` if all the buttons in the form have unique names, since they\nassign a different variable in the ``context.data``, or from the\n``value`` if they have overlapping names.\n\nSecrets\n=======\n\nSecrets are files that contain sensitive information are not checked in\nthe project. In order to make them available to the build, we need to\ndefine them in either ``~/.adhesive/secrets/SECRET_NAME`` or in the\ncurrent folder as ``.adhesive/secrets/SECRET_NAME``.\n\nIn order to make them available, we just use the ``secret`` function\nthat creates the file in the current workspace and deletes it when\nexiting. For example here\u2019s how we\u2019re doing the actual publish, creating\nthe secret inside a docker container:\n\n.. code:: python\n\n @adhesive.task('^PyPI publish to (.+?)$')\n def publish_to_pypi(context, registry):\n with docker.inside(context.workspace, context.data.gbs_build_image_name) as w:\n with secret(w, \"PYPIRC_RELEASE_FILE\", \"/germanium/.pypirc\"):\n w.run(f\"python setup.py bdist_wheel upload -r {registry}\")\n\nNote the ``docker.inside`` that creates a different workspace.\n\nConfiguration\n=============\n\nAdhesive supports configuration via its config files, or environment\nvariables. The values are read in the following order:\n\n1. environment variables: ``ADHESIVE_XYZ``, then\n\n2. values that are in the project config yml file:\n ``.adhesive/config.yml``, then\n\n3. values configured in the global config yml file:\n ``$HOME/.adhesive/config.yml``.\n\nCurrently the following values are defined for configuration:\n\ntemp\\_folder\n------------\n\ndefault value ``/tmp/adhesive``, environment var:\n``ADHESIVE_TEMP_FOLDER``.\n\nIs where all the build files will be stored.\n\nplugins\n-------\n\ndefault value ``[]``, environment var: ``ADHESIVE_PLUGINS_LIST``.\n\nThis contains a list of folders, that will be added to the ``sys.path``.\nSo to create a reusable plugin that will be reused by multiple builds,\nyou need to simply create a folder with python files, then point to it\nin the ``~/.adhesive/config.yml``:\n\n.. code:: yaml\n\n plugins:\n - /path/to/folder\n\nThen in the python path you can simply do regular imports.\n\ncolor\n-----\n\ndefault value ``True``, environment var: ``ADHESIVE_COLOR``.\n\nMarks if the logging should use ANSI colors in the terminal. Implicitly\nthis is ``true``, but if log parsing is needed, it can make sense to\nhave it false.\n\nlog\\_level\n----------\n\ndefault\\_value ``info``, environment var: ``ADHESIVE_LOG_LEVEL``.\n\nHow verbose should the logging be on the terminal. Possible values are\n``trace``, ``debug``, ``info``, ``warning``, ``error`` and ``critical``.\n\npool\\_size\n----------\n\ndefault value is empty, environment var: ``ADHESIVE_POOL_SIZE``.\n\nSets the number of workers that adhesive will use. Defaults to the\nnumber of CPUs if unset.\n\nstdout\n------\n\ndefault value is empty, environment var: ``ADHESIVE_STDOUT``.\n\nImplicitly for each task, the log is redirected in a different file, and\nonly shown if the task failed. The redirection can be disabled.\n\nparallel\\_processing\n--------------------\n\ndefault value is ``thread``, environment var:\n``ADHESIVE_PARALLEL_PROCESSING``.\n\nImplicitly tasks are scaled using multiple threads in order to alleviate\nwaits for I/O. This is useful for times when remote ssh workspaces are\ndefined in the lanes, so the same connection can be reused for multiple\ntasks.\n\nThis value can be set to ``process``, in case the tasks are CPU\nintensive. This has the drawback of recreating the connections on\nworkspaces' each task execution.\n\nHacking Adhesive\n================\n\nAdhesive builds with itself. In order to do that, you need to checkout\nthe `adhesive-lib`_ shared plugin, and configure your local config to\nuse it:\n\n.. code:: yaml\n\n plugins:\n - /path/to/adhesive-lib\n\nThen simply run the build using adhesive itself:\n\n.. code:: sh\n\n adhesive\n\n.. _build of adhesive: _adhesive.py\n.. _BPMN process: adhesive-self.bpmn\n.. _adhesive-lib: https://github.com/germaniumhq/adhesive-lib\n\n.. |BPMN Editor| image:: ./doc/yaoqiang-screenshot.png\n.. |form| image:: ./doc/console_usertask.png\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "adhesive", "package_url": "https://pypi.org/project/adhesive/", "platform": "", "project_url": "https://pypi.org/project/adhesive/", "project_urls": null, "release_url": "https://pypi.org/project/adhesive/2021.4.3/", "requires_dist": null, "requires_python": "", "summary": "adhesive", "version": "2021.4.3", "yanked": false, "yanked_reason": null }, "last_serial": 9950964, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3a124b21a7ecc2daa60e612e62bbffe8", "sha256": "45b278955c4604559de40187941a2244279462f7cc7e04be249a8e1519fc675b" }, "downloads": -1, "filename": "adhesive-0.0.1.tar.gz", "has_sig": false, "md5_digest": "3a124b21a7ecc2daa60e612e62bbffe8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4502, "upload_time": "2019-04-10T07:19:27", "upload_time_iso_8601": "2019-04-10T07:19:27.344213Z", "url": "https://files.pythonhosted.org/packages/58/30/1ed8e5204f2ac7d699f6a508b5318c2d18eba6b73374c8de8d8eb0e32257/adhesive-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "30d5add5cd39490f4df409ce335ffe65", "sha256": "c96d63990bbb252ea4d4a35dea2e2d238b2a71833256f96932020be39816d3db" }, "downloads": -1, "filename": "adhesive-0.0.2.tar.gz", "has_sig": false, "md5_digest": "30d5add5cd39490f4df409ce335ffe65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5440, "upload_time": "2019-04-15T07:37:38", "upload_time_iso_8601": "2019-04-15T07:37:38.382902Z", "url": "https://files.pythonhosted.org/packages/a7/80/0faf0ca1709589415098a94f8e49b65018d8a5acbf3ca2d7c564e27c2e96/adhesive-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "4243989b47b11d65f35bbc1663049412", "sha256": "047a192f9f50403cb2f2669ed0d0f7cdc40ad780b0c4fd55a9afb3c79fa2d60f" }, "downloads": -1, "filename": "adhesive-0.0.3.tar.gz", "has_sig": false, "md5_digest": "4243989b47b11d65f35bbc1663049412", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6840, "upload_time": "2019-04-17T07:32:24", "upload_time_iso_8601": "2019-04-17T07:32:24.082921Z", "url": "https://files.pythonhosted.org/packages/38/61/aeef5cd70b5d13e655481816cf0897f85acbfb1eb3f4330b347710cdf197/adhesive-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "8d73dde85c33167a4db76a11422de268", "sha256": "766d1318ed9ad4f1bff7dda8a323b46992cc3382c6371ee2419ad15cfb17a264" }, "downloads": -1, "filename": "adhesive-0.0.4.tar.gz", "has_sig": false, "md5_digest": "8d73dde85c33167a4db76a11422de268", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7551, "upload_time": "2019-04-19T06:46:36", "upload_time_iso_8601": "2019-04-19T06:46:36.930088Z", "url": "https://files.pythonhosted.org/packages/d7/0b/631e73a37b1850107b6eb300ef4e9fda1d0542d203a194e142a45ac635d9/adhesive-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "d9af1173280eba9c198ccac4806dbcd7", "sha256": "3d1c9aa00a2aa77dc2db2425d37394a1ee27c9eecf6c207cb0e41610abfa5714" }, "downloads": -1, "filename": "adhesive-0.0.5.tar.gz", "has_sig": false, "md5_digest": "d9af1173280eba9c198ccac4806dbcd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13882, "upload_time": "2019-04-24T22:04:01", "upload_time_iso_8601": "2019-04-24T22:04:01.606781Z", "url": "https://files.pythonhosted.org/packages/60/3d/f57c1032f1ac06a138d739ca23ad54af5ff547d5ec092744b111b89ed542/adhesive-0.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "d2f5210c2674bb665a4728e5238e6a5f", "sha256": "c0ca8277f7448a2d9e6bef839aebd2e904ca3910b4e038e6ab9e77fa1a205f26" }, "downloads": -1, "filename": "adhesive-0.0.6.tar.gz", "has_sig": false, "md5_digest": "d2f5210c2674bb665a4728e5238e6a5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14136, "upload_time": "2019-04-25T07:43:53", "upload_time_iso_8601": "2019-04-25T07:43:53.841527Z", "url": "https://files.pythonhosted.org/packages/f8/e9/33c077b89c35a4660e6fac398eb07ed2501884ad3f3d3196aa2c5ed49498/adhesive-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "393b52d4b5f5411845c9b35f37a87c87", "sha256": "ed22eb88bb94558f2a5f045c40beaa23ae9cd5dc34416043434b7aa951d3c7cb" }, "downloads": -1, "filename": "adhesive-0.1.0.tar.gz", "has_sig": false, "md5_digest": "393b52d4b5f5411845c9b35f37a87c87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17749, "upload_time": "2019-04-30T07:33:01", "upload_time_iso_8601": "2019-04-30T07:33:01.536210Z", "url": "https://files.pythonhosted.org/packages/b4/f6/62a1a88057b96fec47b665da5dcea65cc26761e224302901a500dcc5bbf1/adhesive-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a87e2974ac65ee79d647e623b141487b", "sha256": "91cb51dcd63acadc11eb6d62b06ca963277e1527eef1c7ecfa6d67d69987e2d4" }, "downloads": -1, "filename": "adhesive-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a87e2974ac65ee79d647e623b141487b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18743, "upload_time": "2019-05-02T07:49:29", "upload_time_iso_8601": "2019-05-02T07:49:29.202526Z", "url": "https://files.pythonhosted.org/packages/cc/ff/91d4f055d9b6703390911fab83193dc22e17e6278bb01de986cca08ad568/adhesive-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "12e48ac678e9a9dd43670a222e394069", "sha256": "e67a0e362e3bcabf64f54787739efcb441023899eaa5fa8a8c8f9c4f06defbac" }, "downloads": -1, "filename": "adhesive-0.1.2.tar.gz", "has_sig": false, "md5_digest": "12e48ac678e9a9dd43670a222e394069", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20505, "upload_time": "2019-05-06T07:44:16", "upload_time_iso_8601": "2019-05-06T07:44:16.702574Z", "url": "https://files.pythonhosted.org/packages/f6/e0/0e514f9d500c8f9e1f5fb75ad81bd388737a8f3526aa9275815b6a794376/adhesive-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "e2cd0e39c35e06b655d90027dc7f5e17", "sha256": "a9c4c3c13df751d408a37169e6b618971ffafc07c63849b9d2ffa78fc26bfc9c" }, "downloads": -1, "filename": "adhesive-0.10.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e2cd0e39c35e06b655d90027dc7f5e17", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 111437, "upload_time": "2019-10-07T07:26:52", "upload_time_iso_8601": "2019-10-07T07:26:52.140236Z", "url": "https://files.pythonhosted.org/packages/f2/fe/865037b7f3f7463c1e7ab4ad63c25b3ff396566d6415da347edd78b3c10a/adhesive-0.10.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.1": [ { "comment_text": "", "digests": { "md5": "64f188e1e7e0625c5341b100b68cbbf7", "sha256": "076ddee997190d154408e806fdcb8f0678f6e4893d8aa540bb75d79c08772e78" }, "downloads": -1, "filename": "adhesive-0.10.1-py3-none-any.whl", "has_sig": false, "md5_digest": "64f188e1e7e0625c5341b100b68cbbf7", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 111655, "upload_time": "2019-10-08T07:35:34", "upload_time_iso_8601": "2019-10-08T07:35:34.402781Z", "url": "https://files.pythonhosted.org/packages/2b/ab/70fe86ecc757438e31e9df1bc8f0a844b61d681578278aaeb3b46984e93c/adhesive-0.10.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.2": [ { "comment_text": "", "digests": { "md5": "1d0e09410a453d52c5da2f79c88fe28a", "sha256": "75678d29a0bf1b5b5c9c08b7a5903705e0c26c3bdd5fc199f2b9ca661bc2e4ce" }, "downloads": -1, "filename": "adhesive-0.10.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1d0e09410a453d52c5da2f79c88fe28a", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 111984, "upload_time": "2019-10-09T06:33:18", "upload_time_iso_8601": "2019-10-09T06:33:18.790264Z", "url": "https://files.pythonhosted.org/packages/40/62/eee6df429dd301c1a9b57d5cb7e46eec6ba9e24407819f98710e7e186201/adhesive-0.10.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.3": [ { "comment_text": "", "digests": { "md5": "6dc78fb9e75dc0fa694cce0b7e9244b9", "sha256": "ff44325ef8119a0dc8a53cb542040424ba399f44428ce6adbd312ab43a78a951" }, "downloads": -1, "filename": "adhesive-0.10.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6dc78fb9e75dc0fa694cce0b7e9244b9", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 112082, "upload_time": "2019-10-09T06:44:28", "upload_time_iso_8601": "2019-10-09T06:44:28.919855Z", "url": "https://files.pythonhosted.org/packages/36/b8/e60af7d8255affdf9564c41fd0c37f63a4b5d7caa53db6001a0e2458274f/adhesive-0.10.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.4": [ { "comment_text": "", "digests": { "md5": "4f6a804728f4afdd5ae44d61395fe56e", "sha256": "966b1fb09ba8f795e043fe5e3ec9b7a8d68fc2dd4b721a9119d34917c3e13598" }, "downloads": -1, "filename": "adhesive-0.10.4-py3-none-any.whl", "has_sig": false, "md5_digest": "4f6a804728f4afdd5ae44d61395fe56e", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 112309, "upload_time": "2019-10-14T07:50:01", "upload_time_iso_8601": "2019-10-14T07:50:01.980193Z", "url": "https://files.pythonhosted.org/packages/4f/3c/5f38f4d528a5384fb08d5efb90ad463c8750e51f75e5c840223dace5a860/adhesive-0.10.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.5": [ { "comment_text": "", "digests": { "md5": "bdc2cf2ffa9b2d12a885c5e6ca8b918c", "sha256": "0747ffc566be2253019b7e16d6e4ffce399873e2256b14e02f7c6ffc5bd1bbaf" }, "downloads": -1, "filename": "adhesive-0.10.5-py3-none-any.whl", "has_sig": false, "md5_digest": "bdc2cf2ffa9b2d12a885c5e6ca8b918c", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 112302, "upload_time": "2019-10-18T07:56:41", "upload_time_iso_8601": "2019-10-18T07:56:41.006579Z", "url": "https://files.pythonhosted.org/packages/00/97/b65fae2ebc3d65488186e9a997c24f9f3ff8249e975a875cb62e0fae7c34/adhesive-0.10.5-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.6": [ { "comment_text": "", "digests": { "md5": "3a4e355aa2966fb8a431adbc4ef8fda0", "sha256": "36d1628e6913868cbdfc7a9d98254856d07639acba4456b672bfb42f47a3055a" }, "downloads": -1, "filename": "adhesive-0.10.6-py3-none-any.whl", "has_sig": false, "md5_digest": "3a4e355aa2966fb8a431adbc4ef8fda0", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 112598, "upload_time": "2019-10-21T07:53:44", "upload_time_iso_8601": "2019-10-21T07:53:44.759847Z", "url": "https://files.pythonhosted.org/packages/55/b8/87a1c2989e579f5f81d95733e03b88e3857be2be91f4b474d67492fc04a4/adhesive-0.10.6-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.7": [ { "comment_text": "", "digests": { "md5": "1389ed7688849620f564cfd6466c7c82", "sha256": "6914c9b9bcb8c01d28c14eb71d648ae8c3f527b4b0e4790a82736c788b7df49e" }, "downloads": -1, "filename": "adhesive-0.10.7-py3-none-any.whl", "has_sig": false, "md5_digest": "1389ed7688849620f564cfd6466c7c82", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 112646, "upload_time": "2019-10-22T06:30:14", "upload_time_iso_8601": "2019-10-22T06:30:14.139119Z", "url": "https://files.pythonhosted.org/packages/69/a9/b290a0d7a0390f1bb9ccc1bc0d507b0d1d2484598a6776c72f5d92267a47/adhesive-0.10.7-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "240113e8ad74a806cb1ba93febae9867", "sha256": "057b191d06b43d5263b06d844240c1dd4f9ae7e8ca47c5dffca535cfb5ed215d" }, "downloads": -1, "filename": "adhesive-0.11.0-py3-none-any.whl", "has_sig": false, "md5_digest": "240113e8ad74a806cb1ba93febae9867", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 114169, "upload_time": "2019-10-24T04:16:56", "upload_time_iso_8601": "2019-10-24T04:16:56.479757Z", "url": "https://files.pythonhosted.org/packages/92/bc/c75cb41270d59b9e779715b79471581d7c8f04008b3236af89e4256c8927/adhesive-0.11.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.11.1": [ { "comment_text": "", "digests": { "md5": "bd6030f13240350e55ac2331f3046863", "sha256": "17945a5158971f54069f7a2ab326b94ab64f7cc4c0e18e729649226d67bd58e4" }, "downloads": -1, "filename": "adhesive-0.11.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bd6030f13240350e55ac2331f3046863", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 114168, "upload_time": "2019-11-06T07:22:49", "upload_time_iso_8601": "2019-11-06T07:22:49.265734Z", "url": "https://files.pythonhosted.org/packages/09/4a/0c6ad69654321ea6986245f2266f1229759d1d4bffb8f133b3ebf9f9dd82/adhesive-0.11.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.11.2": [ { "comment_text": "", "digests": { "md5": "da5e26ec6148f14fe94a3dffdccec19b", "sha256": "a7ef70f5bb2acd30f674566adb836e07ecccd6b42210adebb1dd04544545766e" }, "downloads": -1, "filename": "adhesive-0.11.2-py3-none-any.whl", "has_sig": false, "md5_digest": "da5e26ec6148f14fe94a3dffdccec19b", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 114373, "upload_time": "2019-11-07T06:08:52", "upload_time_iso_8601": "2019-11-07T06:08:52.162778Z", "url": "https://files.pythonhosted.org/packages/13/b1/706595e0d82618e84641bc05fc146c81c10b0194e35821646b896e21d17a/adhesive-0.11.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.11.3": [ { "comment_text": "", "digests": { "md5": "ae5ec2104ee0ada1c4d5573d941f1137", "sha256": "bb44093e6ab2d75f575383b33d0d52e3351a9b3a4862ae9333ca56bfec460b48" }, "downloads": -1, "filename": "adhesive-0.11.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ae5ec2104ee0ada1c4d5573d941f1137", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 115253, "upload_time": "2019-11-08T04:33:39", "upload_time_iso_8601": "2019-11-08T04:33:39.970257Z", "url": "https://files.pythonhosted.org/packages/a7/36/5c622d70e54b9d9b64382f3cfba1f6dbf590254416f722f3b939ec941317/adhesive-0.11.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.11.4": [ { "comment_text": "", "digests": { "md5": "fbfbe591bc54a22f08ae3cbf44cee230", "sha256": "b5e63840a3204ba4c96be45a092a84d623a02b32180b6592861ed9a4fe350225" }, "downloads": -1, "filename": "adhesive-0.11.4-py3-none-any.whl", "has_sig": false, "md5_digest": "fbfbe591bc54a22f08ae3cbf44cee230", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 115260, "upload_time": "2019-11-19T06:05:51", "upload_time_iso_8601": "2019-11-19T06:05:51.062107Z", "url": "https://files.pythonhosted.org/packages/4d/e4/39193f65e1f3072dd76da0cfe0a559db905a91b89293b5b499c7f1ab3967/adhesive-0.11.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "2cd24f81f76af2cdf6615921c70148a8", "sha256": "7e08c88734bdd807426ef8fbe1da31dbd123d8ca3a6b3d2cef40965af265f954" }, "downloads": -1, "filename": "adhesive-0.12.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2cd24f81f76af2cdf6615921c70148a8", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 124858, "upload_time": "2019-11-23T05:55:41", "upload_time_iso_8601": "2019-11-23T05:55:41.331638Z", "url": "https://files.pythonhosted.org/packages/04/60/b7c36dc00f4f973575b8e055a1479958b77ed443951d5f5679aa7f040515/adhesive-0.12.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "840857b25bd2252b3c32a64c0ed456fa", "sha256": "684c5f669eca0cabac6c175de4db723340bef6edc6618ad4464941c13edb1b1d" }, "downloads": -1, "filename": "adhesive-0.13.0-py3-none-any.whl", "has_sig": false, "md5_digest": "840857b25bd2252b3c32a64c0ed456fa", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 124925, "upload_time": "2019-11-27T07:32:59", "upload_time_iso_8601": "2019-11-27T07:32:59.439016Z", "url": "https://files.pythonhosted.org/packages/67/c9/e8a9d135de61406d66e106e075f42781d23fe10b33a26db664dbc5e25a9d/adhesive-0.13.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.14.0": [ { "comment_text": "", "digests": { "md5": "056ddacec9ac54120b889ad4e430223c", "sha256": "2998426d88cfbfbb18cba7429e16c329ebcf6b6b60f1429be3ed96e6e455fef9" }, "downloads": -1, "filename": "adhesive-0.14.0-py3-none-any.whl", "has_sig": false, "md5_digest": "056ddacec9ac54120b889ad4e430223c", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 124926, "upload_time": "2019-11-27T07:49:59", "upload_time_iso_8601": "2019-11-27T07:49:59.318962Z", "url": "https://files.pythonhosted.org/packages/1d/90/10d804cb1baae00c90a35cce335c035c2c7c4cf9f3ce57d8e240f74430e9/adhesive-0.14.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.14.1": [ { "comment_text": "", "digests": { "md5": "36ceef820f6995e376b615d46cc9fa57", "sha256": "dc455b8ab0895ceed2e06ed6b3b790f30a9448c6e1a98125b23f1fb5b14a8c92" }, "downloads": -1, "filename": "adhesive-0.14.1-py3-none-any.whl", "has_sig": false, "md5_digest": "36ceef820f6995e376b615d46cc9fa57", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 124923, "upload_time": "2019-12-03T02:12:48", "upload_time_iso_8601": "2019-12-03T02:12:48.576339Z", "url": "https://files.pythonhosted.org/packages/39/ba/2cf8aa8f007c49bc27760ce0208031609daa8816eead96345a32b8a1d69a/adhesive-0.14.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c99ac04676b6db17573c5d8d3defd1ad", "sha256": "219d8daf58062830d69c1b38cb4700c7956eb8e5207b2ccf053554ea32ab7f12" }, "downloads": -1, "filename": "adhesive-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c99ac04676b6db17573c5d8d3defd1ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22697, "upload_time": "2019-05-09T19:54:20", "upload_time_iso_8601": "2019-05-09T19:54:20.730263Z", "url": "https://files.pythonhosted.org/packages/24/0e/7227ad92d697e80612b6c9a10a94400b0a94d918391067c10a85064ce88f/adhesive-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "52b941f4ae6e8d601175d533e8ee720f", "sha256": "26cdbb0b8aab58d98ae96cdd435bdab8f11dc7b39226edeea2e07eb2c053f3fc" }, "downloads": -1, "filename": "adhesive-0.2.1.tar.gz", "has_sig": false, "md5_digest": "52b941f4ae6e8d601175d533e8ee720f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23085, "upload_time": "2019-05-10T12:34:17", "upload_time_iso_8601": "2019-05-10T12:34:17.370475Z", "url": "https://files.pythonhosted.org/packages/56/88/e2ee38155709b93c61bce81d0c3d3f1ce8ab40a6de13620054f76c9b6bd4/adhesive-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.10": [ { "comment_text": "", "digests": { "md5": "862e9796e546e83abf18736a0f655a2e", "sha256": "f08ce3da9d37d2fdc97f68331f3e4ae2481f52d4ea16cfcc51baf61577d74427" }, "downloads": -1, "filename": "adhesive-0.2.10.tar.gz", "has_sig": false, "md5_digest": "862e9796e546e83abf18736a0f655a2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28312, "upload_time": "2019-05-22T05:11:12", "upload_time_iso_8601": "2019-05-22T05:11:12.531144Z", "url": "https://files.pythonhosted.org/packages/91/02/0729f4f34f0f9de20d38e08814a2c4b0f3c0cddd24ad9182fc54e7ee16a5/adhesive-0.2.10.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.11": [ { "comment_text": "", "digests": { "md5": "495a98d9c4358c7dc4907c013d6a0548", "sha256": "955251f2770b3f51c4c2c7a2291e23e229ea241f5b59860cb18a3e647984b50b" }, "downloads": -1, "filename": "adhesive-0.2.11.tar.gz", "has_sig": false, "md5_digest": "495a98d9c4358c7dc4907c013d6a0548", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28301, "upload_time": "2019-05-24T04:28:07", "upload_time_iso_8601": "2019-05-24T04:28:07.024319Z", "url": "https://files.pythonhosted.org/packages/65/5a/e0ec677247d6bdb6d738a6aeb73b9f64036868b36d06e4790b3889237a30/adhesive-0.2.11.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.12": [ { "comment_text": "", "digests": { "md5": "2d8accd79b0cf3faae47a6c628384aeb", "sha256": "b7c59e5ee822f8708c213e5a0eaca2749c21f2b6a23331bf6b529e24221890ab" }, "downloads": -1, "filename": "adhesive-0.2.12.tar.gz", "has_sig": false, "md5_digest": "2d8accd79b0cf3faae47a6c628384aeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29645, "upload_time": "2019-05-25T18:00:16", "upload_time_iso_8601": "2019-05-25T18:00:16.174796Z", "url": "https://files.pythonhosted.org/packages/a7/91/042d3f6f8f2a685f7732acabc17f0cf0db7c183751ab40908e8b6f3de21f/adhesive-0.2.12.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.13": [ { "comment_text": "", "digests": { "md5": "b7bb3bd4b01e020c3715b01074e2db76", "sha256": "a1443bc20bd50c120ce46ccda99e730765bc2b952b76d815b1f8e77cb8b81371" }, "downloads": -1, "filename": "adhesive-0.2.13.tar.gz", "has_sig": false, "md5_digest": "b7bb3bd4b01e020c3715b01074e2db76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29959, "upload_time": "2019-05-28T07:39:06", "upload_time_iso_8601": "2019-05-28T07:39:06.541246Z", "url": "https://files.pythonhosted.org/packages/99/47/38443399710aff5918c825e057d172a723c3461f4f7cbc97d1479b621c03/adhesive-0.2.13.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.15": [ { "comment_text": "", "digests": { "md5": "08e4d4a57d764af97435b424b8c64144", "sha256": "49bb142ffbb8f2436a7f949b188095cf48d7c146dbf17b886f7f19a4605a3d31" }, "downloads": -1, "filename": "adhesive-0.2.15-py3-none-any.whl", "has_sig": false, "md5_digest": "08e4d4a57d764af97435b424b8c64144", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 57049, "upload_time": "2019-05-28T20:31:43", "upload_time_iso_8601": "2019-05-28T20:31:43.786385Z", "url": "https://files.pythonhosted.org/packages/9a/5c/f43d4809d4e7c0f997037c9ffd1252c5f467e0e673bc70f494ce3104cc15/adhesive-0.2.15-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7f8d7cc2f5d759a03b3e3278b015f7df", "sha256": "2381d08f1c7a6ba7f7b93da94e10d455b6aef114c61c9c82cd792b6ab127be77" }, "downloads": -1, "filename": "adhesive-0.2.15.tar.gz", "has_sig": false, "md5_digest": "7f8d7cc2f5d759a03b3e3278b015f7df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29959, "upload_time": "2019-05-28T07:41:15", "upload_time_iso_8601": "2019-05-28T07:41:15.910785Z", "url": "https://files.pythonhosted.org/packages/66/ed/ba114a58e75672e95a182aac0f0d4825836985bf4bb5b90140f68b80e896/adhesive-0.2.15.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.16": [ { "comment_text": "", "digests": { "md5": "37e68fd006a94829e5ca4aeced8f4ed4", "sha256": "0638d5f1c92216b12ebd067f7b2ebbbed9d5ae5c74469090a12aa774623b2621" }, "downloads": -1, "filename": "adhesive-0.2.16-py3-none-any.whl", "has_sig": false, "md5_digest": "37e68fd006a94829e5ca4aeced8f4ed4", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 57052, "upload_time": "2019-05-28T21:01:33", "upload_time_iso_8601": "2019-05-28T21:01:33.589189Z", "url": "https://files.pythonhosted.org/packages/84/06/58396dfcdd443a70c15250de3468123646be923901b81e03e9aad68d7059/adhesive-0.2.16-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.17": [ { "comment_text": "", "digests": { "md5": "193789064bbefada509398998106345b", "sha256": "3b9827afa585143cbbbaaf352ab8bf22ffd17332153cd4606daf7ca533357858" }, "downloads": -1, "filename": "adhesive-0.2.17-py3-none-any.whl", "has_sig": false, "md5_digest": "193789064bbefada509398998106345b", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 57426, "upload_time": "2019-05-28T21:37:46", "upload_time_iso_8601": "2019-05-28T21:37:46.704080Z", "url": "https://files.pythonhosted.org/packages/c7/65/1d0c507cf86cb74b4464ed6d74080b4743d6c6553c2a0f5d17f98effa1ab/adhesive-0.2.17-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.18": [ { "comment_text": "", "digests": { "md5": "e2e3e1ab1ec84dbc8355df118c87f3bb", "sha256": "ec8915a2f3bff79f2b440b862e01d2e341962088c387ca17910e0808ca8236db" }, "downloads": -1, "filename": "adhesive-0.2.18-py3-none-any.whl", "has_sig": false, "md5_digest": "e2e3e1ab1ec84dbc8355df118c87f3bb", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 57423, "upload_time": "2019-05-30T04:51:23", "upload_time_iso_8601": "2019-05-30T04:51:23.351722Z", "url": "https://files.pythonhosted.org/packages/60/38/21d6d2ee05926a09f90cd4257ddaecb2ca5b73fdf9af36477baa89f7fab6/adhesive-0.2.18-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.19": [ { "comment_text": "", "digests": { "md5": "51119df65c79e7cb870f89a1395f694d", "sha256": "421ea18e13a8032aa932d27788a3fdc25309fa13fd768a68c8977ad7b0820cb3" }, "downloads": -1, "filename": "adhesive-0.2.19-py3-none-any.whl", "has_sig": false, "md5_digest": "51119df65c79e7cb870f89a1395f694d", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 57460, "upload_time": "2019-05-30T05:04:50", "upload_time_iso_8601": "2019-05-30T05:04:50.694234Z", "url": "https://files.pythonhosted.org/packages/f4/37/7abe24625724fce0cac5941f823ea386f79f346b993422b37efdaf97b576/adhesive-0.2.19-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "10de47e6460e06736d4f634e6167b511", "sha256": "ef00b99667fc4244d21e5dbe978907e088214fc06d54da60b135ce8cbe6f0099" }, "downloads": -1, "filename": "adhesive-0.2.2.tar.gz", "has_sig": false, "md5_digest": "10de47e6460e06736d4f634e6167b511", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23540, "upload_time": "2019-05-13T05:08:37", "upload_time_iso_8601": "2019-05-13T05:08:37.606034Z", "url": "https://files.pythonhosted.org/packages/43/73/7afb91444bb1290ddcb9f42f0fdd4e96b19b56c0369a0ab3215ba4a1473d/adhesive-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.20": [ { "comment_text": "", "digests": { "md5": "4ca108524bf592987917a11e1a8f1f7f", "sha256": "52757e5a155358d3c57851c7c52f1e48188e4aaa7c80c7d8440052913a28aa40" }, "downloads": -1, "filename": "adhesive-0.2.20-py3-none-any.whl", "has_sig": false, "md5_digest": "4ca108524bf592987917a11e1a8f1f7f", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 57670, "upload_time": "2019-05-30T06:09:18", "upload_time_iso_8601": "2019-05-30T06:09:18.218936Z", "url": "https://files.pythonhosted.org/packages/55/5d/416f36688b49296d20af4a33485586928e750943a315ec6f6ba1e2cad9b2/adhesive-0.2.20-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.21": [ { "comment_text": "", "digests": { "md5": "7a1d37d0efdfc223df07cafff0c9b4d5", "sha256": "27549c470298394f052fd4b0461071fd4af79f78fca406d108f27aa40562442b" }, "downloads": -1, "filename": "adhesive-0.2.21-py3-none-any.whl", "has_sig": false, "md5_digest": "7a1d37d0efdfc223df07cafff0c9b4d5", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 57780, "upload_time": "2019-05-30T20:12:47", "upload_time_iso_8601": "2019-05-30T20:12:47.037468Z", "url": "https://files.pythonhosted.org/packages/fe/52/dc32a4cad4cc7e5fc845dadffbe5bfd6896d7ba229df17665784587b28b7/adhesive-0.2.21-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.22": [ { "comment_text": "", "digests": { "md5": "147631ef1377d028d162a1637f4623fa", "sha256": "b9885bb199c980b22d7ff0a28e932bc8e1a6c93aaf812120d5df839f4ebea966" }, "downloads": -1, "filename": "adhesive-0.2.22-py3-none-any.whl", "has_sig": false, "md5_digest": "147631ef1377d028d162a1637f4623fa", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 57807, "upload_time": "2019-06-01T03:32:46", "upload_time_iso_8601": "2019-06-01T03:32:46.254473Z", "url": "https://files.pythonhosted.org/packages/64/97/ef53adc5584090af6f9d78ad37ec8cdcf2b41331aa8f1f94b2dedf0531f4/adhesive-0.2.22-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.23": [ { "comment_text": "", "digests": { "md5": "219338fb249f44cc1307cee8d3c0d60c", "sha256": "1b0a66a30bd2a1716178d1a655a3f457eeff625b630567eefc4b7d87c8f76346" }, "downloads": -1, "filename": "adhesive-0.2.23-py3-none-any.whl", "has_sig": false, "md5_digest": "219338fb249f44cc1307cee8d3c0d60c", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 57807, "upload_time": "2019-06-03T07:44:38", "upload_time_iso_8601": "2019-06-03T07:44:38.269742Z", "url": "https://files.pythonhosted.org/packages/1a/79/46ebb70f298cc5964e332ac919e0d795d3f4547b551e1aba6008f308e5c6/adhesive-0.2.23-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "77d0a774ff6c953351cafc82729ff499", "sha256": "71ef6a2867fd8cc4b7755911f7691773e49c4ec0a89508afbb6b4b02f5c01944" }, "downloads": -1, "filename": "adhesive-0.2.3.tar.gz", "has_sig": false, "md5_digest": "77d0a774ff6c953351cafc82729ff499", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24606, "upload_time": "2019-05-15T07:42:44", "upload_time_iso_8601": "2019-05-15T07:42:44.313623Z", "url": "https://files.pythonhosted.org/packages/1d/b2/ef79210eb1f76897e32e5a6f719fbf27c5e5509ce7cb848e8d1918b8d9e3/adhesive-0.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "9476928986b41bb91a72529f7fbee678", "sha256": "54631bc2752bbeca8c7c492e159a6a8b046d1ab92a774517fd97cd37a9d08931" }, "downloads": -1, "filename": "adhesive-0.2.4.tar.gz", "has_sig": false, "md5_digest": "9476928986b41bb91a72529f7fbee678", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25003, "upload_time": "2019-05-17T05:04:13", "upload_time_iso_8601": "2019-05-17T05:04:13.691837Z", "url": "https://files.pythonhosted.org/packages/52/4d/4a34b9a3660837df52a6f0bacc8568154725d91473190ecdf081070987f9/adhesive-0.2.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "f6a71871868e5ea68affca31d0040382", "sha256": "16c002675bc72453ae5a9a836d591539203bb6a253c43e7f47a6e6452affed4e" }, "downloads": -1, "filename": "adhesive-0.2.5.tar.gz", "has_sig": false, "md5_digest": "f6a71871868e5ea68affca31d0040382", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26500, "upload_time": "2019-05-17T05:13:05", "upload_time_iso_8601": "2019-05-17T05:13:05.480706Z", "url": "https://files.pythonhosted.org/packages/81/20/c6981dbd58426a7caa7e505db0039d2d7664df67f3a4cb8dad9d42f94884/adhesive-0.2.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "f622738bc9c80c048e016446c38f7b7d", "sha256": "bb4f5d806dddd0a2292b98393b103a98ff3bb692cebf9812c44b7f59a7b7b794" }, "downloads": -1, "filename": "adhesive-0.2.6.tar.gz", "has_sig": false, "md5_digest": "f622738bc9c80c048e016446c38f7b7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26647, "upload_time": "2019-05-17T07:38:47", "upload_time_iso_8601": "2019-05-17T07:38:47.754405Z", "url": "https://files.pythonhosted.org/packages/12/e4/e9c6df3bb043b4c65d636ea8e47073208464e0fa91e9a5c9ab2e3e7c5f2b/adhesive-0.2.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "eb3f1bf9269020c0f1f669ec9007952d", "sha256": "8838618d5976e54b57b154de438f261528d2cba4cf412cb41aac0c8436d351cb" }, "downloads": -1, "filename": "adhesive-0.2.7.tar.gz", "has_sig": false, "md5_digest": "eb3f1bf9269020c0f1f669ec9007952d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27483, "upload_time": "2019-05-18T03:53:55", "upload_time_iso_8601": "2019-05-18T03:53:55.202705Z", "url": "https://files.pythonhosted.org/packages/4e/22/4e8bb72906915f6dc6a0a45847c9f31f4eb4d55725c01404ca0aea65f55d/adhesive-0.2.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "f5e440493a5aeba952bbd4eed5533c6d", "sha256": "642dc6b5e2d7e291bd42ba80904121b930360d8e2e17aa36d4af7fb59b62f060" }, "downloads": -1, "filename": "adhesive-0.2.8.tar.gz", "has_sig": false, "md5_digest": "f5e440493a5aeba952bbd4eed5533c6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27820, "upload_time": "2019-05-19T11:34:05", "upload_time_iso_8601": "2019-05-19T11:34:05.628252Z", "url": "https://files.pythonhosted.org/packages/6e/52/3bbdfe148364d676fb824b4b8361df10af16994432c61f133b9b1ef3796b/adhesive-0.2.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "72b92824afaa224b30d344b520da1c91", "sha256": "f25c1529f576550527278b8e93c8c838385c6b4497d18403e89e303743244f0d" }, "downloads": -1, "filename": "adhesive-0.2.9.tar.gz", "has_sig": false, "md5_digest": "72b92824afaa224b30d344b520da1c91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27880, "upload_time": "2019-05-21T07:59:00", "upload_time_iso_8601": "2019-05-21T07:59:00.221608Z", "url": "https://files.pythonhosted.org/packages/61/1d/c7bee08dd5e5d019e8af42ac019e6c79c7d1d1f24da04d582026b499d814/adhesive-0.2.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9fa2dfaa5cb19df0fdaec9fc18f9241f", "sha256": "e8c5089ee358953b132e93276be8e9563df992e8da6cdacfddf6f1bd4518151e" }, "downloads": -1, "filename": "adhesive-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9fa2dfaa5cb19df0fdaec9fc18f9241f", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 60030, "upload_time": "2019-06-04T07:04:31", "upload_time_iso_8601": "2019-06-04T07:04:31.680925Z", "url": "https://files.pythonhosted.org/packages/11/41/773406351c37b93b78c349a525d62c384a2a79bc20a73889185e5449717e/adhesive-0.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "fe565585b6e13e81ddb239500a1777ee", "sha256": "fcca129892179fb0a167886e95dd5b83c735e3cd0dc64f30d0a8cb5c3a898b05" }, "downloads": -1, "filename": "adhesive-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fe565585b6e13e81ddb239500a1777ee", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 60137, "upload_time": "2019-06-05T03:34:46", "upload_time_iso_8601": "2019-06-05T03:34:46.460530Z", "url": "https://files.pythonhosted.org/packages/cf/9e/1a4063379f7cb8042ec7cdc983729bd0fb86395615936f4dbdbf030e2ad2/adhesive-0.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "864c449d7d868d017c276b77baea786c", "sha256": "4b91e8291fe8a37a8a902c3a563a213483280e9c2c5be34340e0c8b2f9884cb1" }, "downloads": -1, "filename": "adhesive-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "864c449d7d868d017c276b77baea786c", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 60173, "upload_time": "2019-06-05T03:52:49", "upload_time_iso_8601": "2019-06-05T03:52:49.717055Z", "url": "https://files.pythonhosted.org/packages/3b/bf/28958910c7d97ef2269b73e8ceadddc1a18a954555a7b5c1dd0902df3c8e/adhesive-0.3.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "375201586ecf753c24ce6dbd6d13dba2", "sha256": "8d40f4bd184eddb28d56e76da03737a2bbd9943508d1609d54762fa522d54219" }, "downloads": -1, "filename": "adhesive-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "375201586ecf753c24ce6dbd6d13dba2", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 60277, "upload_time": "2019-06-06T04:18:54", "upload_time_iso_8601": "2019-06-06T04:18:54.464773Z", "url": "https://files.pythonhosted.org/packages/cb/8d/d5292b6954543dc170a20f0c42e9934729e6cf516903e763c056eafcdc9c/adhesive-0.3.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "650b3f657a4b0895553b6bcf816ca3a1", "sha256": "9240473010fe9193ddee8001be23de7b9416fbe1781e57962878ef89463bda5a" }, "downloads": -1, "filename": "adhesive-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "650b3f657a4b0895553b6bcf816ca3a1", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 60430, "upload_time": "2019-06-06T20:32:32", "upload_time_iso_8601": "2019-06-06T20:32:32.355715Z", "url": "https://files.pythonhosted.org/packages/9d/ce/8e92a08da3c71b90bc0996a12a4c301cbafa4b4b01a187b3fd0e21c2ab20/adhesive-0.3.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "f1cef009729a2c22634f6a81927046ef", "sha256": "facacb4c9e1535dee833e8ab46e225f73714acf16e6291f72769bbdadff953ae" }, "downloads": -1, "filename": "adhesive-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "f1cef009729a2c22634f6a81927046ef", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 72794, "upload_time": "2019-06-10T21:32:23", "upload_time_iso_8601": "2019-06-10T21:32:23.270509Z", "url": "https://files.pythonhosted.org/packages/32/ff/61e4d9b0e896a0b9de2d553d4cb7cadebcca3dc83b60051856b4af9c431c/adhesive-0.3.5-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "2aa062a8237600e76893a277e35489b3", "sha256": "5361fd12f06aff6f8e6b03dc6030d5f86778aa1f1ec886385b2aca553d6a957f" }, "downloads": -1, "filename": "adhesive-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2aa062a8237600e76893a277e35489b3", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 73844, "upload_time": "2019-06-11T07:25:21", "upload_time_iso_8601": "2019-06-11T07:25:21.918528Z", "url": "https://files.pythonhosted.org/packages/2b/2e/865d481678c6f4b451edfcb1a4bc2fde1aad18b1bd0e349a68f9866d0928/adhesive-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "3ad919e025306abe1cfca2f346760db9", "sha256": "7122f9813fc23d20abb62dd67da32dc0b883434d1adffd5533350d39ea5241b6" }, "downloads": -1, "filename": "adhesive-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3ad919e025306abe1cfca2f346760db9", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 77526, "upload_time": "2019-06-13T00:25:45", "upload_time_iso_8601": "2019-06-13T00:25:45.045388Z", "url": "https://files.pythonhosted.org/packages/b4/5a/4232827be512d64a0473ac9f7a35baef434812578c01c4cab8bd2d6e9e6e/adhesive-0.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "14bb4e079a95962723eb760b13f5200b", "sha256": "a9a8e84c9db8692f35a7ebcef2712258950ffe7b1a013ce9582e610fe31e05ba" }, "downloads": -1, "filename": "adhesive-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "14bb4e079a95962723eb760b13f5200b", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 77852, "upload_time": "2019-06-13T00:52:37", "upload_time_iso_8601": "2019-06-13T00:52:37.901015Z", "url": "https://files.pythonhosted.org/packages/34/79/532e5d9beac6f14307fb434e20b0f4f6f875fd54942106ac49333bfbb64f/adhesive-0.4.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "15d100f4d4e506ad00fbd218c38834bd", "sha256": "2e7e40babd3f752128a784abea4bd187cf895574509a8e0566fbb8186a4bea8e" }, "downloads": -1, "filename": "adhesive-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "15d100f4d4e506ad00fbd218c38834bd", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 78781, "upload_time": "2019-06-15T07:26:19", "upload_time_iso_8601": "2019-06-15T07:26:19.376583Z", "url": "https://files.pythonhosted.org/packages/1e/68/e8c9b09f4454cb02f9691e161c6f6feed0c831f89fd8b4233f573c05209b/adhesive-0.4.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "aaaff80e939c5a24215ba2ea4c916573", "sha256": "fcc1dbf5c26679f42711ce9b85e0dcecad4e333db3ca06436cb87b5e07434f35" }, "downloads": -1, "filename": "adhesive-0.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "aaaff80e939c5a24215ba2ea4c916573", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 78942, "upload_time": "2019-07-15T00:05:06", "upload_time_iso_8601": "2019-07-15T00:05:06.517272Z", "url": "https://files.pythonhosted.org/packages/b0/e0/fb90be91405296c1cd03d828b2dc11fd4bd8cc98a6713053e89bb1bd1de8/adhesive-0.4.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "d37efee47a4853daa8d6f2016ae018f3", "sha256": "327f04ad5244deed11425f50efda93e7425059be5e59dd857595d56c9baf7003" }, "downloads": -1, "filename": "adhesive-0.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d37efee47a4853daa8d6f2016ae018f3", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 79032, "upload_time": "2019-07-15T20:29:16", "upload_time_iso_8601": "2019-07-15T20:29:16.584711Z", "url": "https://files.pythonhosted.org/packages/3e/8e/0319702ad9f25b7be2f685ba14442ea9ba5ee0fb4d2e5b20ebe305c7d79b/adhesive-0.4.5-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "5fc461643c91b71112ea544ef38a231b", "sha256": "6cabf645fd63aadf193ea58150aef6d92902dda1aaee6e5af9c7d54212c02422" }, "downloads": -1, "filename": "adhesive-0.4.6-py3-none-any.whl", "has_sig": false, "md5_digest": "5fc461643c91b71112ea544ef38a231b", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 79277, "upload_time": "2019-07-15T20:30:56", "upload_time_iso_8601": "2019-07-15T20:30:56.466761Z", "url": "https://files.pythonhosted.org/packages/c8/e8/e198a6c0f08f6aa746bc5869858907f0bbb7e9c4aa1efd81260af4976c33/adhesive-0.4.6-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "fb86ae2cf54b7c4fd791ae641af67160", "sha256": "457b511864d084f00b8e20a5533fbe15bbe5df300ab81823e60b21526078a56a" }, "downloads": -1, "filename": "adhesive-0.4.7-py3-none-any.whl", "has_sig": false, "md5_digest": "fb86ae2cf54b7c4fd791ae641af67160", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 79364, "upload_time": "2019-07-15T22:12:17", "upload_time_iso_8601": "2019-07-15T22:12:17.630968Z", "url": "https://files.pythonhosted.org/packages/bc/81/8a58bbe2e85722c19ce9391853c16c4c8335172e6e2f0dd6dd802cfd1c8a/adhesive-0.4.7-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "d387438299633be923505b13faa76b0f", "sha256": "edccdeca25f9179790d1947686b8591d0e826744bd14c45e4faaa9a12b1ee31c" }, "downloads": -1, "filename": "adhesive-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d387438299633be923505b13faa76b0f", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 80750, "upload_time": "2019-08-29T23:36:59", "upload_time_iso_8601": "2019-08-29T23:36:59.342295Z", "url": "https://files.pythonhosted.org/packages/b8/94/bfd14debe0e7759abda161f29a740187cae3cd21e13c4c67f7c2bf30a88f/adhesive-0.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "6df02a5e977324551e518e36f42dc748", "sha256": "d08737d885669169bf34782b3864117ccc388f4ee74dd1983bf5e487234d318f" }, "downloads": -1, "filename": "adhesive-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6df02a5e977324551e518e36f42dc748", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 80660, "upload_time": "2019-08-30T07:25:58", "upload_time_iso_8601": "2019-08-30T07:25:58.365761Z", "url": "https://files.pythonhosted.org/packages/e5/b2/2bdafb0927786aa7c748bb21b146c24b5b21675e45afde286371e872a5bb/adhesive-0.5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "3418943ef2db5906fadf785089eba3a1", "sha256": "af8b8d5ff250b5c1877c1567b4db675c2780db31b6121a1a06240bdddf6e4a42" }, "downloads": -1, "filename": "adhesive-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3418943ef2db5906fadf785089eba3a1", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 80753, "upload_time": "2019-09-04T05:54:10", "upload_time_iso_8601": "2019-09-04T05:54:10.922729Z", "url": "https://files.pythonhosted.org/packages/33/75/04404de859501c90e0e9f1cf6d7c2fb3aec3fc32489f6e3ee2e3dabfd58f/adhesive-0.5.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "fd5e2e489a3ecafe41866da67f2b8754", "sha256": "c6d0237e78f8c5ed62ed0c38abb01d3f5122a23530cfcf2767bba571dfc54add" }, "downloads": -1, "filename": "adhesive-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fd5e2e489a3ecafe41866da67f2b8754", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 82573, "upload_time": "2019-09-05T22:00:28", "upload_time_iso_8601": "2019-09-05T22:00:28.388719Z", "url": "https://files.pythonhosted.org/packages/d8/50/06515797155ee3be93b476d40f13895db21aeb1ee3964e9d4eeea5701f50/adhesive-0.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "3c6c315188786b2ecd3d01ad0ed69526", "sha256": "9c94ed0084523ff258ab30082f356b5f805e513ded50e68dc075ffd7123630eb" }, "downloads": -1, "filename": "adhesive-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3c6c315188786b2ecd3d01ad0ed69526", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 92443, "upload_time": "2019-09-16T07:03:51", "upload_time_iso_8601": "2019-09-16T07:03:51.521527Z", "url": "https://files.pythonhosted.org/packages/82/ff/29d704f85b7828697bee835529b134609ee1b26a1b78d8d4f0b40ff8e965/adhesive-0.7.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "6bdf02aa40266ea8a4331c9a95ac6b87", "sha256": "240f48967ea2b5a4e7e86e358b04ef3a8db2878d632fd882ee67d6d4ea13b122" }, "downloads": -1, "filename": "adhesive-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6bdf02aa40266ea8a4331c9a95ac6b87", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 93464, "upload_time": "2019-09-17T07:21:34", "upload_time_iso_8601": "2019-09-17T07:21:34.186782Z", "url": "https://files.pythonhosted.org/packages/87/b2/49630f6770deee87851655d235e5d4047078cd8eb4d99a2b2174dc10d9ba/adhesive-0.7.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.10": [ { "comment_text": "", "digests": { "md5": "dfbd403bc2c065a4b0d9324833eb91f6", "sha256": "4b1f9cc3dc375cf08abf9562e6688b7664bb11b9a37845416cee0d481efa1788" }, "downloads": -1, "filename": "adhesive-0.7.10-py3-none-any.whl", "has_sig": false, "md5_digest": "dfbd403bc2c065a4b0d9324833eb91f6", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 95353, "upload_time": "2019-09-20T05:04:03", "upload_time_iso_8601": "2019-09-20T05:04:03.544718Z", "url": "https://files.pythonhosted.org/packages/a1/8b/ca4ed6b39d3be4488c077ba3b87ababf6fdbe2f9e33079c047b1d24f1c33/adhesive-0.7.10-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.11": [ { "comment_text": "", "digests": { "md5": "585d64045dd659cbed88622f349a70e8", "sha256": "a2f72697931d333c43ad5398abbd88ed4b957b2fc71f2875542424f7d19c534d" }, "downloads": -1, "filename": "adhesive-0.7.11-py3-none-any.whl", "has_sig": false, "md5_digest": "585d64045dd659cbed88622f349a70e8", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 95370, "upload_time": "2019-09-21T02:21:17", "upload_time_iso_8601": "2019-09-21T02:21:17.949105Z", "url": "https://files.pythonhosted.org/packages/e6/26/e8957d19a8c0a0a2afcdd454f4187ca85a9c7ebb8325a917809c94cbc18e/adhesive-0.7.11-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.12": [ { "comment_text": "", "digests": { "md5": "fdb9b58aaf226614eeb4f3335fa76f64", "sha256": "fad7d5f6e5f4b0a564970e684e9eb5f8d70123209847ab0ac45d589703c11873" }, "downloads": -1, "filename": "adhesive-0.7.12-py3-none-any.whl", "has_sig": false, "md5_digest": "fdb9b58aaf226614eeb4f3335fa76f64", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 95477, "upload_time": "2019-09-24T07:20:12", "upload_time_iso_8601": "2019-09-24T07:20:12.609105Z", "url": "https://files.pythonhosted.org/packages/78/f1/d8ac75b0aebce6aebdcaa6bc3976c83c57314cf88dfe6f3d2bab983f7904/adhesive-0.7.12-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "4baede616dbd1eaed77ef2826e4ece47", "sha256": "97303b73bfc5cf6b00304372ab48a154f8e774e65967152e3ffd7ce1b63f633a" }, "downloads": -1, "filename": "adhesive-0.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4baede616dbd1eaed77ef2826e4ece47", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 93439, "upload_time": "2019-09-18T00:02:21", "upload_time_iso_8601": "2019-09-18T00:02:21.454187Z", "url": "https://files.pythonhosted.org/packages/44/10/da8e11c45792c9cb6c14be15e25dd30c33929b6806d64cc48942abdcfad8/adhesive-0.7.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "3e52c10f4d779422ffd2ae39c4ad244f", "sha256": "c4cff048b6749eeb6f82e6dde434a481142d0c292159e6f8af98f36b3ff671e3" }, "downloads": -1, "filename": "adhesive-0.7.3-py3-none-any.whl", "has_sig": false, "md5_digest": "3e52c10f4d779422ffd2ae39c4ad244f", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 93418, "upload_time": "2019-09-18T00:11:19", "upload_time_iso_8601": "2019-09-18T00:11:19.310894Z", "url": "https://files.pythonhosted.org/packages/83/a1/ec6b8ea963775ba72fb53ca8dc037da90c9fd48d2ce70e60cf05d49bd689/adhesive-0.7.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "52d5148a9ef96751da05494b44536519", "sha256": "b3b9c255109cef150299ca2a9176bbd8164a2ee4d0d22b059e2313da3ad96d55" }, "downloads": -1, "filename": "adhesive-0.7.4-py3-none-any.whl", "has_sig": false, "md5_digest": "52d5148a9ef96751da05494b44536519", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 93449, "upload_time": "2019-09-18T00:29:10", "upload_time_iso_8601": "2019-09-18T00:29:10.657099Z", "url": "https://files.pythonhosted.org/packages/81/ee/922d19289981447c678cea9cb475c215521b1ea100aa65a97bf345485d2e/adhesive-0.7.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "3be004b98be1e75e08d4cdf394591b81", "sha256": "c5cf0d35f88f36f03ac1aab891ac0d2aad9efd93613f8a57b3ac59bfd56c037f" }, "downloads": -1, "filename": "adhesive-0.7.5-py3-none-any.whl", "has_sig": false, "md5_digest": "3be004b98be1e75e08d4cdf394591b81", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 93629, "upload_time": "2019-09-18T02:00:47", "upload_time_iso_8601": "2019-09-18T02:00:47.153877Z", "url": "https://files.pythonhosted.org/packages/1b/39/da118ebae7ba14219636f14ffbb8c77224c0467603f945e41729b6341779/adhesive-0.7.5-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.6": [ { "comment_text": "", "digests": { "md5": "6de0022cc8d734111ad27a4117baa0fc", "sha256": "add1c049b208091ad90395546746c80e6b36c23621436048d6f30c966d0db790" }, "downloads": -1, "filename": "adhesive-0.7.6-py3-none-any.whl", "has_sig": false, "md5_digest": "6de0022cc8d734111ad27a4117baa0fc", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 93652, "upload_time": "2019-09-18T02:49:39", "upload_time_iso_8601": "2019-09-18T02:49:39.046713Z", "url": "https://files.pythonhosted.org/packages/46/26/a1d8ff7e6d33c4bb1216b2e992bcab791c15785b4497fc2784aa1a0dc55a/adhesive-0.7.6-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.7": [ { "comment_text": "", "digests": { "md5": "cd65275ab4a0b6bdcc2bdbfcbaee19bb", "sha256": "ee3f65951c04b3ee9a16cb93016a95d7fa38e0b456ffd53d0cc8718dae30ac74" }, "downloads": -1, "filename": "adhesive-0.7.7-py3-none-any.whl", "has_sig": false, "md5_digest": "cd65275ab4a0b6bdcc2bdbfcbaee19bb", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 93848, "upload_time": "2019-09-19T03:12:54", "upload_time_iso_8601": "2019-09-19T03:12:54.814717Z", "url": "https://files.pythonhosted.org/packages/8c/9f/8a0b53e06cff273cc36f080cb298bca581826e9a56d4253374b015c59b85/adhesive-0.7.7-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.9": [ { "comment_text": "", "digests": { "md5": "f4f7237b50a46d31cf262b1ea446f23e", "sha256": "3e212620126c7e40f871a420a2f6f8fec826aa2a2df067f39c5bd86591c5a866" }, "downloads": -1, "filename": "adhesive-0.7.9-py3-none-any.whl", "has_sig": false, "md5_digest": "f4f7237b50a46d31cf262b1ea446f23e", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 95224, "upload_time": "2019-09-20T04:15:18", "upload_time_iso_8601": "2019-09-20T04:15:18.940254Z", "url": "https://files.pythonhosted.org/packages/88/fe/d0b6945deb26d59220a7d9518f746a4a830e7d3134cdd8f2555d22802cf6/adhesive-0.7.9-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "ace01dfcca8fca79b8e94e5b02d0d407", "sha256": "dbd2f073f34ab0621435e24e88fc4dea4a5fa9e0502956431473159eb347a10d" }, "downloads": -1, "filename": "adhesive-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ace01dfcca8fca79b8e94e5b02d0d407", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 95986, "upload_time": "2019-09-24T09:06:58", "upload_time_iso_8601": "2019-09-24T09:06:58.529846Z", "url": "https://files.pythonhosted.org/packages/ce/a2/4d640801e3cd6bf8e3881ac98e3e440ad3bcbdaea9a69c0eb904e68642b8/adhesive-0.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "db13583d5c3ba4c314b7345238e2876a", "sha256": "f8f7f20c001f4d5b9b6889ff8cc0992c3357f9859866bb601885ef26f02f82a4" }, "downloads": -1, "filename": "adhesive-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "db13583d5c3ba4c314b7345238e2876a", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 96031, "upload_time": "2019-09-25T19:31:05", "upload_time_iso_8601": "2019-09-25T19:31:05.585182Z", "url": "https://files.pythonhosted.org/packages/9c/7d/b75ccdc3bbb8fd7dfc1eeeda29d4c1810e5c6c124a00cd43c779c5613958/adhesive-0.8.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "cdf1d91b049e8e5014968f3246db604d", "sha256": "a57d1c0bdb14c60e7c18d1073a6047cf285170bdd0dc40304e6d8b3b97e870b4" }, "downloads": -1, "filename": "adhesive-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cdf1d91b049e8e5014968f3246db604d", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 105328, "upload_time": "2019-09-25T21:57:07", "upload_time_iso_8601": "2019-09-25T21:57:07.242775Z", "url": "https://files.pythonhosted.org/packages/40/76/a870dcd9aff1b013b97005f1f7b8bd6618c51c7e07a00e7e215c4a2cb6e5/adhesive-0.9.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "635ee2182a93099d68f2220093928e4d", "sha256": "861d12162d148ee460d12cac8325df3b6063ab8f683de8061ec270139dd911a2" }, "downloads": -1, "filename": "adhesive-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "635ee2182a93099d68f2220093928e4d", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 105897, "upload_time": "2019-10-01T07:45:36", "upload_time_iso_8601": "2019-10-01T07:45:36.354800Z", "url": "https://files.pythonhosted.org/packages/b9/ca/092c268fe43e809f66add182b74c1383a4d30ea64f1c84419b468214a485/adhesive-0.9.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "3dabc3aa8fa53eee8859c81a63c4ceb1", "sha256": "5c71e9367d007083d9bc8282ddc6a7d1f077ec8227f9391afed9d7915ec010cd" }, "downloads": -1, "filename": "adhesive-0.9.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3dabc3aa8fa53eee8859c81a63c4ceb1", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 106105, "upload_time": "2019-10-01T21:59:32", "upload_time_iso_8601": "2019-10-01T21:59:32.698054Z", "url": "https://files.pythonhosted.org/packages/da/ed/8a4cbe1c20174a6046d4492515369c3d144722654dcbbfa53b5449953dcb/adhesive-0.9.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "aad11ef11e9c70fd3b212423e013ae85", "sha256": "3040ffeb649a777757093a7396bb0b4100a3b86dceeebda23a254906b141ee1d" }, "downloads": -1, "filename": "adhesive-0.9.3-py3-none-any.whl", "has_sig": false, "md5_digest": "aad11ef11e9c70fd3b212423e013ae85", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 106646, "upload_time": "2019-10-01T23:58:37", "upload_time_iso_8601": "2019-10-01T23:58:37.461210Z", "url": "https://files.pythonhosted.org/packages/2f/4d/68baff82f66930419829d5ecb1f2eb2b5cd5c9a49d42149b10f04e472a1a/adhesive-0.9.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "63325090f01a98e3484018d86792382f", "sha256": "6957b64a556b30a0134c9de32b1a597094d80068df0a54578579a2d7cefc8e02" }, "downloads": -1, "filename": "adhesive-0.9.4-py3-none-any.whl", "has_sig": false, "md5_digest": "63325090f01a98e3484018d86792382f", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 106910, "upload_time": "2019-10-03T03:48:55", "upload_time_iso_8601": "2019-10-03T03:48:55.284584Z", "url": "https://files.pythonhosted.org/packages/53/99/20d674bb46b71a4803eae1a4374fe1b0bf88331c683309a66819ed239478/adhesive-0.9.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "2dd2da59019a60e971c17df2bc751122", "sha256": "442234b62e3be4240a57f37295592d54aba999c40dc0a13714934c6830b7a5ad" }, "downloads": -1, "filename": "adhesive-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2dd2da59019a60e971c17df2bc751122", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 126909, "upload_time": "2019-12-05T06:30:37", "upload_time_iso_8601": "2019-12-05T06:30:37.568553Z", "url": "https://files.pythonhosted.org/packages/7d/63/eec50bf640c907be555f0a8794ac571a7d56e8f571c9a6bede452dc6d6cd/adhesive-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "0b8647bfc009c0f2efa800a18df1391d", "sha256": "173c575e1d5fc9887083b275337461bd5b5a908ede93ae7694773206f39d32ad" }, "downloads": -1, "filename": "adhesive-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0b8647bfc009c0f2efa800a18df1391d", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 126904, "upload_time": "2019-12-05T07:20:56", "upload_time_iso_8601": "2019-12-05T07:20:56.345355Z", "url": "https://files.pythonhosted.org/packages/10/d0/721ef81790a02308f508722179bd5bb1a82852eaba156f00d90406202dea/adhesive-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d92b9a1b08e28eb72db4e24d11ea5775", "sha256": "c54d464d65ca1c6f4a01a088325cb90153909b81dcdfcdf38ecbff1e296661af" }, "downloads": -1, "filename": "adhesive-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d92b9a1b08e28eb72db4e24d11ea5775", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127066, "upload_time": "2019-12-06T04:42:15", "upload_time_iso_8601": "2019-12-06T04:42:15.372306Z", "url": "https://files.pythonhosted.org/packages/55/1a/188a55d45687a862a8cff611f13d4ccb86f6288229c253c535ad16f536b6/adhesive-1.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "36131fefe71b97c0719f3ad63425cc9a", "sha256": "2ef066aa526023427f42bb60cb1605cb50633a285403f6ea5bfe31173745c0c5" }, "downloads": -1, "filename": "adhesive-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "36131fefe71b97c0719f3ad63425cc9a", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127100, "upload_time": "2019-12-07T07:17:06", "upload_time_iso_8601": "2019-12-07T07:17:06.362295Z", "url": "https://files.pythonhosted.org/packages/ae/e6/865c8e6ad202a1ad1984bbfa44576d7a7404559d4b07dd9585816e18a192/adhesive-1.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "7c8eee6c1ee1db1b89d28c9d0099eb17", "sha256": "7056c315366af3bb307a153d9113848b05f872d7eaaf4dbd75a3bb27675ec45f" }, "downloads": -1, "filename": "adhesive-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "7c8eee6c1ee1db1b89d28c9d0099eb17", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127105, "upload_time": "2019-12-08T20:52:52", "upload_time_iso_8601": "2019-12-08T20:52:52.167237Z", "url": "https://files.pythonhosted.org/packages/a4/f3/03d4848d137390e1156f909903ea018794bfc748f885a4603d0fe6d1bf7f/adhesive-1.0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "0c93fc16aaac227654a758e9c26a22a6", "sha256": "c673c124b02711b8f203fb582b5f3ce039fda1536062bda40ea490ad5b0408b7" }, "downloads": -1, "filename": "adhesive-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0c93fc16aaac227654a758e9c26a22a6", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127082, "upload_time": "2019-12-11T04:53:03", "upload_time_iso_8601": "2019-12-11T04:53:03.345271Z", "url": "https://files.pythonhosted.org/packages/37/40/42a1a9527acf8953787e79c853750a5b4840227a5dca0bc3311742555b83/adhesive-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "6535685bd5720af604e2bc57fc1fa1f1", "sha256": "4f4d2769bcde3a65b5a5da02a05710243a8e3455a945a540b7850c7a6f1a6644" }, "downloads": -1, "filename": "adhesive-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6535685bd5720af604e2bc57fc1fa1f1", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 119564, "upload_time": "2019-12-13T04:46:57", "upload_time_iso_8601": "2019-12-13T04:46:57.914205Z", "url": "https://files.pythonhosted.org/packages/f8/9b/b0565daf803c5f8247bd017cad973d93bc36a91b5d83f2597210684ed12c/adhesive-1.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "a3e9c76e2834ecf5c1ac30dc556263b4", "sha256": "bad4b9efa94ca355e8c49db308a65c8dbfea76a474fdb48493e45df0ff99a556" }, "downloads": -1, "filename": "adhesive-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a3e9c76e2834ecf5c1ac30dc556263b4", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 119602, "upload_time": "2019-12-13T20:36:48", "upload_time_iso_8601": "2019-12-13T20:36:48.462308Z", "url": "https://files.pythonhosted.org/packages/cc/ff/3cfd0b3d03ff0b0644787595ba3545f92d9b4d9f147573d47bd14c742684/adhesive-1.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "7f8328edf3258dba3b6d50cc9ca9ec05", "sha256": "d42b5daab97e97598b10ad87dad50479697a254b878c8d1aa0bb2ac6fc084a34" }, "downloads": -1, "filename": "adhesive-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7f8328edf3258dba3b6d50cc9ca9ec05", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 119683, "upload_time": "2019-12-18T05:43:53", "upload_time_iso_8601": "2019-12-18T05:43:53.984528Z", "url": "https://files.pythonhosted.org/packages/97/06/30a0d00c74271e28b92f18d4f7608e3b63940f3b23995c60ff28eb4dea22/adhesive-1.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "c450acd0ba4304b2277a04bdf4ce8ab9", "sha256": "8e476c73dc7d63c45e3918169c6cc5ce4dc45fbe57f94182c2414225bc767964" }, "downloads": -1, "filename": "adhesive-1.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "c450acd0ba4304b2277a04bdf4ce8ab9", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 119903, "upload_time": "2020-01-24T06:29:11", "upload_time_iso_8601": "2020-01-24T06:29:11.635802Z", "url": "https://files.pythonhosted.org/packages/ab/6e/7ee3219b7260315affc282ec9aefec2f4f489c5386a0de4a436a4deab12c/adhesive-1.1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "405ffc204350ea4bad5ddc70d41a22ed", "sha256": "2c57a03cf565b2fd974f06035a45665a8773b0ea7115f1edcd0a3315b1fb2f23" }, "downloads": -1, "filename": "adhesive-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "405ffc204350ea4bad5ddc70d41a22ed", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 120244, "upload_time": "2020-01-31T23:47:44", "upload_time_iso_8601": "2020-01-31T23:47:44.226595Z", "url": "https://files.pythonhosted.org/packages/e3/22/8ddb65662ad7e92dc9de1bae85dcaa728a4c973188bee50414d4442f86ff/adhesive-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "24141bbf775bea104c931a4e9440f9e3", "sha256": "ed6b74b2651748ff740b8c3a838132aab40b990c3a682a2faf575bafc803a014" }, "downloads": -1, "filename": "adhesive-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "24141bbf775bea104c931a4e9440f9e3", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 121105, "upload_time": "2020-02-14T05:28:16", "upload_time_iso_8601": "2020-02-14T05:28:16.259199Z", "url": "https://files.pythonhosted.org/packages/b4/db/1ff3ace1ea4ec209eeddb2f8d3ef966467e3a5137c22f1034f2b42cebbe2/adhesive-1.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "f8521a168a4fc64350daf494dbcadce4", "sha256": "2ac6e5da1d44e4d2c557d4cd6b885b03c5f5764443cd616e75ab051af5af64f3" }, "downloads": -1, "filename": "adhesive-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f8521a168a4fc64350daf494dbcadce4", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 121107, "upload_time": "2020-02-17T02:19:24", "upload_time_iso_8601": "2020-02-17T02:19:24.769765Z", "url": "https://files.pythonhosted.org/packages/2d/07/35a4e8a3cd82b8d4d3ee063b4310490e7ef8ff00e4b0f8eddd28c990ef59/adhesive-1.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "43a6f2e2fbec5802e1a7679102e87fe0", "sha256": "4c4f6148032552781c69ca3ad449232d606260b3f03c2f37cfcc5b19c01f4e49" }, "downloads": -1, "filename": "adhesive-1.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "43a6f2e2fbec5802e1a7679102e87fe0", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 121202, "upload_time": "2020-02-17T06:13:02", "upload_time_iso_8601": "2020-02-17T06:13:02.577835Z", "url": "https://files.pythonhosted.org/packages/e7/c9/aaf760cd3f12402d3969de7162898990939dae6ee12b59df8a54eb181822/adhesive-1.2.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "60b8ed4061e9536d4771ede7cd68b436", "sha256": "35103aeb4d35081b6a9ee1a6f5fe75781adbdb12c668e6476909054fbad55779" }, "downloads": -1, "filename": "adhesive-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "60b8ed4061e9536d4771ede7cd68b436", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 120575, "upload_time": "2020-03-04T03:04:32", "upload_time_iso_8601": "2020-03-04T03:04:32.879015Z", "url": "https://files.pythonhosted.org/packages/aa/7c/88cd1197c23b365bc34580d7a05b895796eebf47617107f6bc207299ee81/adhesive-1.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "9e2cba5f2482d4f2cbaee7b9295861c8", "sha256": "5ce83e3cf921f003d5b3dbf7301539614f44cbf0077effb99e3a79aeec97fe9c" }, "downloads": -1, "filename": "adhesive-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9e2cba5f2482d4f2cbaee7b9295861c8", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 120643, "upload_time": "2020-03-23T00:34:16", "upload_time_iso_8601": "2020-03-23T00:34:16.617588Z", "url": "https://files.pythonhosted.org/packages/5c/70/11894320887b1693970177ed682df1d69eebc172f80fad7eba2d61a14cd5/adhesive-1.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "5e0cf15368b234ca5d7bbbdf870af7a7", "sha256": "10e8a5f594d11a998853b1b081d8058321cd324340f5a505d5b4b17a584d1672" }, "downloads": -1, "filename": "adhesive-1.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5e0cf15368b234ca5d7bbbdf870af7a7", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 120572, "upload_time": "2020-04-09T06:15:22", "upload_time_iso_8601": "2020-04-09T06:15:22.073533Z", "url": "https://files.pythonhosted.org/packages/9b/51/48a073626e37ae341aa96fcb132a6995465fba51458c6f071c6184757b62/adhesive-1.3.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "f2e540804dc560d463e4e2831c67afdb", "sha256": "bb259a32b8085bea16b2b6269b2662816679aebc9ab75e03f8f6acd7b39b38cc" }, "downloads": -1, "filename": "adhesive-1.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f2e540804dc560d463e4e2831c67afdb", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 120595, "upload_time": "2020-04-10T05:08:57", "upload_time_iso_8601": "2020-04-10T05:08:57.381641Z", "url": "https://files.pythonhosted.org/packages/ac/a2/b238e4a5217cfb5c0faef22318946043f31a3db59570701b57ef6fbe6f7e/adhesive-1.3.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "d35e694e7dbb3d09bbe2baf58040e18e", "sha256": "0d0c7595f2f74583a4f1b10e6d572119bcff290f9c0123fe7822f6319acc48cc" }, "downloads": -1, "filename": "adhesive-1.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d35e694e7dbb3d09bbe2baf58040e18e", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 120655, "upload_time": "2020-04-10T07:16:14", "upload_time_iso_8601": "2020-04-10T07:16:14.601733Z", "url": "https://files.pythonhosted.org/packages/2b/b0/87641f4f3bbe30bb171c62345b8672582b6d85287b81e163b3cf88b99163/adhesive-1.3.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "08166dac236d3a093bdde3dff6498110", "sha256": "1949ac049d4f1d324d12dc4681c4c153c2b84fabd2e0cc468fab6e757be3c321" }, "downloads": -1, "filename": "adhesive-1.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "08166dac236d3a093bdde3dff6498110", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 120758, "upload_time": "2020-04-10T07:34:02", "upload_time_iso_8601": "2020-04-10T07:34:02.159871Z", "url": "https://files.pythonhosted.org/packages/95/01/8df20c92a100fe440115b83f2d5f41b75bb02973b45107ed8e680ef0317a/adhesive-1.3.5-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.6": [ { "comment_text": "", "digests": { "md5": "17714c6b61dc336208eca1030a4345d8", "sha256": "353bf0676ecc667eb9518c1b7b026f51178e0a1a305b082f5ff965719b6d49cc" }, "downloads": -1, "filename": "adhesive-1.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "17714c6b61dc336208eca1030a4345d8", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 120763, "upload_time": "2020-05-04T21:03:01", "upload_time_iso_8601": "2020-05-04T21:03:01.649655Z", "url": "https://files.pythonhosted.org/packages/ea/e2/12148d5197c1e73a50b46ea82830a8a1e786fedd2e30c6c3387fc2c34f36/adhesive-1.3.6-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "5894ba394a8b8d1acc1d9644828a39e4", "sha256": "00012f342247e74d460362d02a9814ee31f698ba8c7df31bfc00e61178571cb5" }, "downloads": -1, "filename": "adhesive-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5894ba394a8b8d1acc1d9644828a39e4", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 122175, "upload_time": "2020-07-07T05:17:49", "upload_time_iso_8601": "2020-07-07T05:17:49.844961Z", "url": "https://files.pythonhosted.org/packages/58/51/9bb2733dc1f6d51f4235247fa8522374c244785c3e2e5174eb5b89498a4d/adhesive-1.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "689c63263a65ccdd0c738f09edafcdf7", "sha256": "ac4ac9e0fe3ee66d38fd05897f214bfd8365bfc1d9a00c94757dea2f910c6cef" }, "downloads": -1, "filename": "adhesive-1.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "689c63263a65ccdd0c738f09edafcdf7", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 122445, "upload_time": "2020-08-19T19:42:14", "upload_time_iso_8601": "2020-08-19T19:42:14.323187Z", "url": "https://files.pythonhosted.org/packages/a4/2e/4c9a99c2f265c2efe8257f3eba0202988afc15ae47267e88c3f5db9098f5/adhesive-1.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.10": [ { "comment_text": "", "digests": { "md5": "ab9494485a345ef474e69771741caf36", "sha256": "2dfbb1e00647d4e35dd680caa7b1539bf63e65cd1b1150c8827276828ee1796f" }, "downloads": -1, "filename": "adhesive-1.4.10-py3-none-any.whl", "has_sig": false, "md5_digest": "ab9494485a345ef474e69771741caf36", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 124117, "upload_time": "2020-08-24T21:15:10", "upload_time_iso_8601": "2020-08-24T21:15:10.151481Z", "url": "https://files.pythonhosted.org/packages/25/ff/ac3b06e4840f7b4e5d9312d520674f35a1733a3df852ef1daac154a20887/adhesive-1.4.10-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.11": [ { "comment_text": "", "digests": { "md5": "9ddedf082e27bda48312b66d70e0f8ab", "sha256": "d9668e00c0e0e0835beec90ac09fc3504ff85f49277fbcb52be517cccd48fdfa" }, "downloads": -1, "filename": "adhesive-1.4.11-py3-none-any.whl", "has_sig": false, "md5_digest": "9ddedf082e27bda48312b66d70e0f8ab", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 124805, "upload_time": "2020-08-26T23:28:02", "upload_time_iso_8601": "2020-08-26T23:28:02.319794Z", "url": "https://files.pythonhosted.org/packages/44/64/8c5836854a703082d63dad6a043871cd933415ac9656e1cac284e0c8918b/adhesive-1.4.11-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.12": [ { "comment_text": "", "digests": { "md5": "4ae5aedfd6fb8ab656874a54f25c971a", "sha256": "2dca5dbe22e325e8ae6932c514fbb3cf4a5c4fba621dff7c2b2ee15114416113" }, "downloads": -1, "filename": "adhesive-1.4.12-py3-none-any.whl", "has_sig": false, "md5_digest": "4ae5aedfd6fb8ab656874a54f25c971a", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 124807, "upload_time": "2020-08-26T23:38:08", "upload_time_iso_8601": "2020-08-26T23:38:08.046280Z", "url": "https://files.pythonhosted.org/packages/f0/9a/cdf6d67f400a340e965b5d1824d5ca35e4c70deeaf874dd074c6507ce99a/adhesive-1.4.12-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.13": [ { "comment_text": "", "digests": { "md5": "dcd3e58ce056a0ae39bdc0fcfa6f21dc", "sha256": "68842ceed104a88771c76bf22baef3f53de7d7b422b66414ad47ad0617d7436e" }, "downloads": -1, "filename": "adhesive-1.4.13-py3-none-any.whl", "has_sig": false, "md5_digest": "dcd3e58ce056a0ae39bdc0fcfa6f21dc", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 124804, "upload_time": "2020-08-27T07:44:01", "upload_time_iso_8601": "2020-08-27T07:44:01.292154Z", "url": "https://files.pythonhosted.org/packages/be/9b/1ea0de0796ddf92419db28b963882d4be87baff8782b2c986cdac9c1968e/adhesive-1.4.13-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.14": [ { "comment_text": "", "digests": { "md5": "0e561d39d1c2c282dfea7af0c65a82ae", "sha256": "e7ed6161db54bd466939406c856b13b8a6561b4302f378d765564c8ea709e800" }, "downloads": -1, "filename": "adhesive-1.4.14-py3-none-any.whl", "has_sig": false, "md5_digest": "0e561d39d1c2c282dfea7af0c65a82ae", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 124803, "upload_time": "2020-08-27T07:49:02", "upload_time_iso_8601": "2020-08-27T07:49:02.459565Z", "url": "https://files.pythonhosted.org/packages/62/f9/35cfb960a163ae4861647898712dd933aa15378c245be0e33e2a57050480/adhesive-1.4.14-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.15": [ { "comment_text": "", "digests": { "md5": "0c78513ce3375109a967eeb4299fe6ea", "sha256": "4fde68afa0fb6450bd1b6a9aa92e7e9939f9077c8b665fbb38d80307cc3a0d85" }, "downloads": -1, "filename": "adhesive-1.4.15-py3-none-any.whl", "has_sig": false, "md5_digest": "0c78513ce3375109a967eeb4299fe6ea", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 125264, "upload_time": "2020-08-27T23:27:35", "upload_time_iso_8601": "2020-08-27T23:27:35.979020Z", "url": "https://files.pythonhosted.org/packages/0f/20/718e4c5c72790b150f675c1c630d4ff9a526aed10953fc7a9950947220cb/adhesive-1.4.15-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.16": [ { "comment_text": "", "digests": { "md5": "c6611ef554edad5c14f36777a00c2c38", "sha256": "c647b4eb79d67f174c7945f11ab53be4f488ddd7106f365f415369f1260f3946" }, "downloads": -1, "filename": "adhesive-1.4.16-py3-none-any.whl", "has_sig": false, "md5_digest": "c6611ef554edad5c14f36777a00c2c38", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 125285, "upload_time": "2020-09-13T21:36:02", "upload_time_iso_8601": "2020-09-13T21:36:02.444981Z", "url": "https://files.pythonhosted.org/packages/ac/18/abd95d0d55f2f6f268261ac3ba4331f80dea72ca07f57b9c9d21b36be0f8/adhesive-1.4.16-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "8bf38eac978c83374fdee6fce475cfd5", "sha256": "6bca69da7069c65cd5716f84d67b66009fc8bd5f4a8e919a1d89c507dad44a77" }, "downloads": -1, "filename": "adhesive-1.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8bf38eac978c83374fdee6fce475cfd5", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 122674, "upload_time": "2020-08-20T22:00:15", "upload_time_iso_8601": "2020-08-20T22:00:15.158381Z", "url": "https://files.pythonhosted.org/packages/f5/67/44439477e272dbddf9668416b175e83fd9adb74cd99571ac6d0ddcf451c7/adhesive-1.4.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "ae10db228a21568d46fa10cb898fd930", "sha256": "42795c4ac8ba7a847d02338f473a7d7047470c7ba61d395c79358a99ca431233" }, "downloads": -1, "filename": "adhesive-1.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ae10db228a21568d46fa10cb898fd930", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 122674, "upload_time": "2020-08-20T22:09:23", "upload_time_iso_8601": "2020-08-20T22:09:23.187210Z", "url": "https://files.pythonhosted.org/packages/7b/a6/5571fed500b1fc14578baacd9a818ae2c9108a609bc4b59bb678812f6933/adhesive-1.4.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "14c73b7db43927dc82957dd65081c96a", "sha256": "c5b622949858e7201e0ac86aa6237704a8e4d94a0dd11ec1dcfc14ef6fb7fdc9" }, "downloads": -1, "filename": "adhesive-1.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "14c73b7db43927dc82957dd65081c96a", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 122657, "upload_time": "2020-08-20T22:48:21", "upload_time_iso_8601": "2020-08-20T22:48:21.247089Z", "url": "https://files.pythonhosted.org/packages/8a/29/d2f424d5f6e393d0f1b9a765dffbbfd96deafdcdf145b9cb4e7f487b9a5a/adhesive-1.4.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.5": [ { "comment_text": "", "digests": { "md5": "022287e99ae451a169b83918efdb2c57", "sha256": "a46ab301154718555bdc776978842b8e06fe06007e8a6d7cd0cbba7c305acf61" }, "downloads": -1, "filename": "adhesive-1.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "022287e99ae451a169b83918efdb2c57", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 122733, "upload_time": "2020-08-21T06:15:05", "upload_time_iso_8601": "2020-08-21T06:15:05.838495Z", "url": "https://files.pythonhosted.org/packages/36/09/1fe6655bfacc1eaada5381f9150fa70879e37137d109dd207d8b08d3def9/adhesive-1.4.5-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.6": [ { "comment_text": "", "digests": { "md5": "d2def1e92a95b520015e2a8bf557dc62", "sha256": "d67d10377c8c4896ca246c618c353a0b6b0ec7e99232572fbeca5a9fa3193c40" }, "downloads": -1, "filename": "adhesive-1.4.6-py3-none-any.whl", "has_sig": false, "md5_digest": "d2def1e92a95b520015e2a8bf557dc62", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 122920, "upload_time": "2020-08-21T22:04:04", "upload_time_iso_8601": "2020-08-21T22:04:04.691345Z", "url": "https://files.pythonhosted.org/packages/3e/96/160d5a9f5d038d96fab71d4d07e7e45155359afb40f8acac4e6c3e3ee60c/adhesive-1.4.6-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.7": [ { "comment_text": "", "digests": { "md5": "2166edc88e6570db4d2c9cc14a6cc2fe", "sha256": "98c54ec0ddf9555f4bbb6ad78a283bdf511091abb52cd2e3db9656c8a75c66d7" }, "downloads": -1, "filename": "adhesive-1.4.7-py3-none-any.whl", "has_sig": false, "md5_digest": "2166edc88e6570db4d2c9cc14a6cc2fe", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 122967, "upload_time": "2020-08-21T23:56:31", "upload_time_iso_8601": "2020-08-21T23:56:31.430019Z", "url": "https://files.pythonhosted.org/packages/49/ad/0a9cdd69fc203bc2af3b0b2fad1d0ff566161e02a7c618707139357d2a33/adhesive-1.4.7-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.8": [ { "comment_text": "", "digests": { "md5": "1487727e25f7b09a45bd0961a002f113", "sha256": "f91c1ec6add1dbbd43f1bd4195d5d01d814454695d5870a8be198c3cb739a2ea" }, "downloads": -1, "filename": "adhesive-1.4.8-py3-none-any.whl", "has_sig": false, "md5_digest": "1487727e25f7b09a45bd0961a002f113", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 122899, "upload_time": "2020-08-22T09:32:22", "upload_time_iso_8601": "2020-08-22T09:32:22.351285Z", "url": "https://files.pythonhosted.org/packages/32/4f/e78eded23fb12ad7edbf397d90bac20a1baa794ec0b7db98f1dab5c47711/adhesive-1.4.8-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.9": [ { "comment_text": "", "digests": { "md5": "be4509a3cdf83690a121b47491e0d0be", "sha256": "e408cfd3ce9dd5e805143dc369a5332b7840e510bd2ded20a239e1414c245762" }, "downloads": -1, "filename": "adhesive-1.4.9-py3-none-any.whl", "has_sig": false, "md5_digest": "be4509a3cdf83690a121b47491e0d0be", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 123898, "upload_time": "2020-08-23T22:35:19", "upload_time_iso_8601": "2020-08-23T22:35:19.835674Z", "url": "https://files.pythonhosted.org/packages/a8/90/7308a31d37562fd5ed0e9f8b48f3891dc9ec06758e44f8712f776ec0fdfc/adhesive-1.4.9-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "0ca16edaec685621d3453ce6ab39926e", "sha256": "10339934e059bafc3606361456493bc25cf1dee6245b9d0a4d15268a5990f49c" }, "downloads": -1, "filename": "adhesive-1.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0ca16edaec685621d3453ce6ab39926e", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 126892, "upload_time": "2020-10-28T06:23:26", "upload_time_iso_8601": "2020-10-28T06:23:26.988834Z", "url": "https://files.pythonhosted.org/packages/9d/8e/940775d5c5d1136171ffc3d16b13e471934db4ca2b2c6a6bce075d6374a9/adhesive-1.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "fa1691d6edb4fd5fc22ee6dfd193b538", "sha256": "e2db244110d3bd00457a78f236553d04c7327ce6e5873d8c162d7d82ee84ab4b" }, "downloads": -1, "filename": "adhesive-1.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fa1691d6edb4fd5fc22ee6dfd193b538", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127390, "upload_time": "2021-02-19T19:44:50", "upload_time_iso_8601": "2021-02-19T19:44:50.727175Z", "url": "https://files.pythonhosted.org/packages/56/78/3e205ea34d0a85efbccd1dfee1d735618746600b80357cedea245b0f5519/adhesive-1.5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2021.3.10": [ { "comment_text": "", "digests": { "md5": "ee71c409fef450c76cab15d358ce4f2b", "sha256": "0ee6a7744f419b8a568a1d0b750eea64968698baa7a3b8e16ccfe3a2c5b3bddd" }, "downloads": -1, "filename": "adhesive-2021.3.10-py3-none-any.whl", "has_sig": false, "md5_digest": "ee71c409fef450c76cab15d358ce4f2b", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127930, "upload_time": "2021-03-24T06:04:49", "upload_time_iso_8601": "2021-03-24T06:04:49.386880Z", "url": "https://files.pythonhosted.org/packages/88/1e/24c8eacb552e9153b0a78d72d6aa68c407d51d91d9a771d0de0983914a4e/adhesive-2021.3.10-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2021.3.11": [ { "comment_text": "", "digests": { "md5": "b8d49f486e22b90913aec5427311257e", "sha256": "f643cdfa752d20872f56103102f526dcc7604c451452e6727b620ec65f5ae759" }, "downloads": -1, "filename": "adhesive-2021.3.11-py3-none-any.whl", "has_sig": false, "md5_digest": "b8d49f486e22b90913aec5427311257e", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127931, "upload_time": "2021-03-26T19:01:14", "upload_time_iso_8601": "2021-03-26T19:01:14.139359Z", "url": "https://files.pythonhosted.org/packages/23/b0/0177ceea2f39441cd34f88bee75b84961c7c52178446aa8e2ec941b88e84/adhesive-2021.3.11-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2021.3.12": [ { "comment_text": "", "digests": { "md5": "22943c712c83e698da960011c6cf420e", "sha256": "0c0a4372308a93be3fe2ff6cbba82d24a0a784c0a46a6febf8bf394dfb39cbcf" }, "downloads": -1, "filename": "adhesive-2021.3.12-py3-none-any.whl", "has_sig": false, "md5_digest": "22943c712c83e698da960011c6cf420e", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127933, "upload_time": "2021-03-31T21:55:28", "upload_time_iso_8601": "2021-03-31T21:55:28.067673Z", "url": "https://files.pythonhosted.org/packages/93/99/a649f0d9722661bf2d926b855c67100da039ef82196df33ef36d19895f48/adhesive-2021.3.12-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2021.3.13": [ { "comment_text": "", "digests": { "md5": "82a7a4d159afd3da96357a93602837fb", "sha256": "ba500833b96bcc12d54aa651c670f551a62c8f9b9eea581d2f44595e076a86f2" }, "downloads": -1, "filename": "adhesive-2021.3.13-py3-none-any.whl", "has_sig": false, "md5_digest": "82a7a4d159afd3da96357a93602837fb", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127933, "upload_time": "2021-03-31T22:19:07", "upload_time_iso_8601": "2021-03-31T22:19:07.569209Z", "url": "https://files.pythonhosted.org/packages/5e/b8/8b16d3f38a4de8480a95584497430de325acb70ea7d95408e6d0c59f9db5/adhesive-2021.3.13-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2021.3.6": [ { "comment_text": "", "digests": { "md5": "c7e98363700d8d561e58a7d6a69ed4fc", "sha256": "46a238c6ffb101049d49f0dbaa4cabcb93d44d3cfff9051fc358008c513b5463" }, "downloads": -1, "filename": "adhesive-2021.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "c7e98363700d8d561e58a7d6a69ed4fc", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127452, "upload_time": "2021-03-17T07:28:58", "upload_time_iso_8601": "2021-03-17T07:28:58.174549Z", "url": "https://files.pythonhosted.org/packages/ea/d1/66311118096fa21a14b5ce60f75b775436212779d9213cc3fd12b53a3b8a/adhesive-2021.3.6-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2021.3.7": [ { "comment_text": "", "digests": { "md5": "9c2884d9d848aa120a344701e6d73581", "sha256": "49ca06cee0916747b2df935eaa71ed6806486cc81d612fc11f1569a8dc887af3" }, "downloads": -1, "filename": "adhesive-2021.3.7-py3-none-any.whl", "has_sig": false, "md5_digest": "9c2884d9d848aa120a344701e6d73581", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127463, "upload_time": "2021-03-18T05:16:12", "upload_time_iso_8601": "2021-03-18T05:16:12.873926Z", "url": "https://files.pythonhosted.org/packages/98/fd/5da81c96a3c0b5f4dc4b601647a5763fd10c16a3a3abef2fe3246651bf5c/adhesive-2021.3.7-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2021.3.8": [ { "comment_text": "", "digests": { "md5": "1cfb4064702b11575218c88f74aa7586", "sha256": "8b2449bd8f6351651707bc000e2a6d8d7498c96406d7391ad1263f9825f14f5a" }, "downloads": -1, "filename": "adhesive-2021.3.8-py3-none-any.whl", "has_sig": false, "md5_digest": "1cfb4064702b11575218c88f74aa7586", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127747, "upload_time": "2021-03-24T04:58:04", "upload_time_iso_8601": "2021-03-24T04:58:04.776183Z", "url": "https://files.pythonhosted.org/packages/d1/18/088d3e891fa20d9c0588c5c305ee7672d40fecacc67001ab40a1ccc4ce22/adhesive-2021.3.8-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2021.4.1": [ { "comment_text": "", "digests": { "md5": "5777aa0b99be4382174b4d474b116222", "sha256": "62731a644b198ce405c91e290c263ebf79258ea5bb0490d906567098696b3622" }, "downloads": -1, "filename": "adhesive-2021.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5777aa0b99be4382174b4d474b116222", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127921, "upload_time": "2021-04-01T05:50:06", "upload_time_iso_8601": "2021-04-01T05:50:06.826315Z", "url": "https://files.pythonhosted.org/packages/67/97/73510c282e65c5bcf1344e2f9e66594076cac09d2c15db87bc31bbe8e970/adhesive-2021.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2021.4.2": [ { "comment_text": "", "digests": { "md5": "43a19f9f57de810794309f6ad7bbb486", "sha256": "5bc7385d3bffd1d8dae583453b3a818d4f6d03ded8d456cd0d5f65d3b6d53ee5" }, "downloads": -1, "filename": "adhesive-2021.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "43a19f9f57de810794309f6ad7bbb486", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 127919, "upload_time": "2021-04-01T06:56:03", "upload_time_iso_8601": "2021-04-01T06:56:03.034063Z", "url": "https://files.pythonhosted.org/packages/db/d4/6006cd1bd04cf935aecf5faf35148f359b95a1755ad9249787d4e814800c/adhesive-2021.4.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2021.4.3": [ { "comment_text": "", "digests": { "md5": "5207c8415e33e7704c2c8dd6e7c2be23", "sha256": "8d3079c271e3094eba4baa813782852cf0f7d7a4ace937af526b0f0b06516770" }, "downloads": -1, "filename": "adhesive-2021.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5207c8415e33e7704c2c8dd6e7c2be23", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 131559, "upload_time": "2021-04-01T21:13:07", "upload_time_iso_8601": "2021-04-01T21:13:07.097791Z", "url": "https://files.pythonhosted.org/packages/83/c2/7f12d695ad788951d7425608ec444ce803c880893c5520bbfde3510aa3db/adhesive-2021.4.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5207c8415e33e7704c2c8dd6e7c2be23", "sha256": "8d3079c271e3094eba4baa813782852cf0f7d7a4ace937af526b0f0b06516770" }, "downloads": -1, "filename": "adhesive-2021.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5207c8415e33e7704c2c8dd6e7c2be23", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 131559, "upload_time": "2021-04-01T21:13:07", "upload_time_iso_8601": "2021-04-01T21:13:07.097791Z", "url": "https://files.pythonhosted.org/packages/83/c2/7f12d695ad788951d7425608ec444ce803c880893c5520bbfde3510aa3db/adhesive-2021.4.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }