{ "info": { "author": "GNES team", "author_email": "team@gnes.ai", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Cython", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Unix Shell", "Topic :: Database :: Database Engines/Servers", "Topic :: Internet :: WWW/HTTP :: Indexing/Search", "Topic :: Multimedia :: Video", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Image Recognition", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "

\n\n \"GNES\n\n

\n\n

\n\n \n\n\n \"PyPI\"\n\n\n Documentation Status\n\n\n \n\n\n \n\n\n \"PyPI\n\n

\n\n

\n Highlights \u2022\n Overview \u2022\n Install \u2022\n Getting Started \u2022\n Hub \u2022\n Documentation \u2022\n Tutorial \u2022\n Contributing \u2022\n Release Notes \u2022\n Blog \n

\n\n

What is it

\n\nGNES [jee-nes] is **Generic Neural Elastic Search**, a cloud-native semantic search system based on deep neural network. \n\n\nGNES enables large-scale index and semantic search for **text-to-text**, **image-to-image**, **video-to-video** and *any-to-any* content form.\n\n\n

Highlights

\n\n

\n \ud83d\udcad To know more about the key tenets of GNES, read this blog post\n

\n\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

\u2601\ufe0f

Cloud-Native & Elastic

\ud83d\udc23

Easy-to-Use

\ud83d\udd2c

State-of-the-Art

GNES is all-in-microservice! Encoder, indexer, preprocessor and router are all running in their own containers. They communicate via versioned APIs and collaborate under the orchestration of Docker Swarm/Kubernetes etc. Scaling, load-balancing, automated recovering, they come off-the-shelf in GNES.How long would it take to deploy a change that involves just switching a layer in VGG? In GNES, this is just one line change in a YAML file. We abstract the encoding and indexing logic to a YAML config, so that you can change or stack encoders and indexers without even touching the codebase.Taking advantage of fast-evolving AI/ML/NLP/CV communities, we learn from best-of-breed deep learning models and plug them into GNES, making sure you always enjoy the state-of-the-art performance.

\ud83c\udf0c

Generic & Universal

\ud83d\udce6

Model as Plugin

\ud83d\udcaf

Best Practice

Searching for texts, image or even short-videos? Using Python/C/Java/Go/HTTP as the client? Doesn't matter which content form you have or which language do you use, GNES can handle them all. When built-in models do not meet your requirments, simply build your own with GNES Hub. Pack your model as a docker container and use it as a plugin.We love to learn the best practice from the community, helping our GNES to achieve the next level of availability, resiliency, performance, and durability. If you have any ideas or suggestions, feel free to contribute.
\n
\n\n

Overview

\n

\n\n\"component\n\n

\n\n### GNES Hub\n\n
\n\n \n \n \n \n
\n \"component\n \n

GNES Hub ship AI/ML models as Docker containers and use Docker containers as plugins. It offers a clean and sustainable way to port external algorithms (with the dependencies) into the GNES framework.

\n

GNES Hub is hosted on the Docker Hub.

\n
\n
\n\n\n

Install GNES

\n\nThere are two ways to get GNES, either as a Docker image or as a PyPi package. **For cloud users, we highly recommend using GNES via Docker**. \n\n### Run GNES as a Docker Container\n\n```bash\ndocker run gnes/gnes:latest-alpine\n```\n\nThis command downloads the latest GNES image (based on [Alpine Linux](https://alpinelinux.org/)) and runs it in a container. When the container runs, it prints an informational message and exits.\n\n#### \ud83d\udca1 Choose the right GNES image\n\nBesides the `alpine` image optimized for the space, we also provide Buster (Debian 10.0), Ubuntu 18.04 and Ubuntu 16.04-based images. The table below summarizes [all available GNES tags](https://cloud.docker.com/u/gnes/repository/docker/gnes/gnes). One can fill in `{ver}` with `latest`, `stable` or `v0..xx`. `latest` refers to the **latest master** of this repository, which [may not be stable](./CONTRIBUTING.md#Merging-Process). We recommend you to use an official release by changing the `latest` to a version number, say `v0.0.24`, or simply using `stable` for the last release, e.g. `gnes:stable-ubuntu`\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
TagSize and layersDescription
{ver}-alpinebased on Alpine Linux;
no deep learning libraries;
extremely lightweight and portable, enables fast scaling on even edge devices.
{ver}-busterbased on Debian 10.0;
no deep learning libraries;
recommended for building or extending a GNES-Hub image.
{ver}-ubuntu18based on Ubuntu 18.04;
no deep learning libraries.
{ver}-fullbased on Ubuntu 16.04;
python-3.6.8, cuda-10.0, tf1.14, pytorch1.1, faiss, multiple pretrained models;
heavy but self-contained, useful in testing GNES end-to-endly.
\n\nWe also provide a public mirror hosted on Tencent Cloud and [Github packages](https://github.com/gnes-ai/gnes/packages/). Select the mirror that serves you well.\n\n```bash\ndocker login --username=xxx ccr.ccs.tencentyun.com # login to Tencent Cloud so that we can pull from it\ndocker run ccr.ccs.tencentyun.com/gnes/gnes:latest-alpine\n# OR via Github package\ndocker login --username=xxx docker.pkg.github.com/gnes-ai/gnes # login to github package so that we can pull from it\ndocker run docker.pkg.github.com/gnes-ai/gnes/gnes:latest-alpine\n```\n\nThe table below shows the status of the build pipeline.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
RegistryBuild status
Docker Hub
gnes/gnes:[tag]
Github Package
docker.pkg.github.com/gnes-ai/gnes/gnes:[tag]
Tencent Cloud
ccr.ccs.tencentyun.com/gnes/gnes:[tag]
\n\n### Install GNES via `pip`\n\nYou can also install GNES as a *Python3* package via:\n```bash\npip install gnes\n```\n\nNote that this will only install a \"barebone\" version of GNES, consists of **the minimal dependencies** for running GNES. No third-party pretrained models, deep learning/NLP/CV packages will be installed. We make this setup as the default installation behavior, as a model interested to NLP engineers may not be interested to CV engineers. In GNES, models serve as Docker plugins. \n\n> \ud83d\udeb8 Tensorflow, Pytorch and torchvision are not part of GNES installation. Depending on your model, you may have to install them in advance.\n\nThough not recommended, you can install GNES with full dependencies via:\n```bash\npip install gnes[all]\n```\n\n
\n \ud83c\udf52 Or cherry-picking the dependencies according to the table below: (click to expand...)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
pip install gnes[bert]
bert-serving-server>=1.8.6, bert-serving-client>=1.8.6
pip install gnes[flair]
flair>=0.4.1
pip install gnes[annoy]
annoy==1.15.2
pip install gnes[chinese]
jieba
pip install gnes[vision]
opencv-python>=4.0.0, imagehash>=4.0
pip install gnes[leveldb]
plyvel>=1.0.5
pip install gnes[test]
pylint, memory_profiler>=0.55.0, psutil>=5.6.1, gputil>=1.4.0
pip install gnes[transformers]
pytorch-transformers
pip install gnes[onnx]
onnxruntime
pip install gnes[audio]
librosa>=0.7.0
pip install gnes[scipy]
scipy
pip install gnes[nlp]
bert-serving-server>=1.8.6, pytorch-transformers, flair>=0.4.1, bert-serving-client>=1.8.6
pip install gnes[cn_nlp]
pytorch-transformers, bert-serving-client>=1.8.6, bert-serving-server>=1.8.6, jieba, flair>=0.4.1
pip install gnes[all]
pylint, psutil>=5.6.1, pytorch-transformers, annoy==1.15.2, bert-serving-client>=1.8.6, gputil>=1.4.0, bert-serving-server>=1.8.6, imagehash>=4.0, onnxruntime, memory_profiler>=0.55.0, jieba, flair>=0.4.1, librosa>=0.7.0, scipy, plyvel>=1.0.5, opencv-python>=4.0.0
\n
\n\nA good way to cherry-pick dependencies is following [the example in GNES Hub](https://github.com/gnes-ai/hub#cherry-picking-dependencies-to-enable-gnes-built-in-models) and building you own GNES image.\n\nEither way, if you end up reading the following message after `$ gnes` or `$ docker run gnes/gnes`, then you are ready to go!\n\n

\n\n\"success\n\n

\n\n\n

Getting Started

\n\n- [\ud83d\udc23 Preliminaries](#-preliminaries)\n * [Microservice](#microservice)\n * [Runtime](#runtime)\n- [Building a flower search engine in 3 minutes](#building-a-flower-search-engine-in-3-minutes)\n * [Define the indexing workflow:](#define-the-indexing-workflow-)\n * [Indexing flower image data](#indexing-flower-image-data)\n * [Querying similar flowers](#querying-similar-flowers)\n- [Elastic made easy](#elastic-made-easy)\n- [Deploying a flow via Docker Swarm/Kubernetes](#deploying-a-flow-via-docker-swarmkubernetes)\n- [Building a cloud-native semantic poem search engine](#building-a-cloud-native-semantic-poem-search-engine)\n- [\ud83d\udc68\u200d\ud83d\udcbb\ufe0fTake-home messages](#-take-home-messages)\n\n\n### \ud83d\udc23 Preliminaries\n\nBefore we start, let me first introduce two important concepts serving as the backbone of GNES: **microservice** and **workflow**. \n\n#### Microservice\n\nFor machine learning engineers and data scientists who are not familiar with the concept of *cloud-native* and *microservice*, one can picture a microservice as an app on your smartphone. Each app runs independently, and an app may cooperate with other apps to accomplish a task. In GNES, we have four fundamental apps, aka. microservices, they are:\n\n- [**Preprocessor**](http://doc.gnes.ai/en/latest/chapter/microservice.html#preprocess): transforming a real-world object to a list of workable semantic units;\n- [**Encoder**](http://doc.gnes.ai/en/latest/chapter/microservice.html#encode): representing a semantic unit with vector representation;\n- [**Indexer**](http://doc.gnes.ai/en/latest/chapter/microservice.html#index): storing the vectors into memory/disk that allows fast-access;\n- [**Router**](http://doc.gnes.ai/en/latest/chapter/microservice.html#route): forwarding messages between microservices: e.g. batching, mapping, reducing.\n\nIn GNES, we have implemented dozens of preprocessor, encoder, indexer to process different content forms, such as image, text, video. It is also super easy to plug in your own implementation, which we shall see an example in the sequel.\n\n#### Workflow\n\nNow that we have a bunch of apps, what are we expecting them to do? A typical search system has two fundamental tasks: **index** and **query**. Index is storing the documents, query is searching the documents. In a neural search system, one may face another task: **train**, where one fine-tunes an encoder/preprocessor according to the data distribution in order to achieve better search relevance. \n\nThese three tasks correspond to three different **workflows** in GNES.\n\n### Building a flower search engine in 3 minutes\n\n> \ud83d\udce3 Since `v0.0.46` [GNES Flow](http://doc.gnes.ai/en/latest/api/gnes.flow.html) has become the main interface of GNES. GNES Flow provides a **pythonic** and **intuitive** way to implement a **workflow**, enabling users to run or debug GNES on a local machine. By default, GNES Flow orchestrates all microservices using multi-thread or multi-process backend, it can be also exported to a Docker Swarm/Kubernetes YAML config, allowing one to deliver GNES to the cloud.\n\n\n\ud83d\udd30 The complete example and the corresponding Jupyter Notebook [can be found at here](https://github.com/gnes-ai/demo-gnes-flow).\n\n\nIn this example, we will use the new `gnes.flow` API (`gnes >= 0.0.46` is required) to build a toy image search system for indexing and retrieving [flowers](http://www.robots.ox.ac.uk/~vgg/data/flowers/17/) based on their similarities.\n\n#### Define the indexing workflow:\n\nLet's first define the indexing workflow by:\n\n```python\nfrom gnes.flow import Flow\nflow = (Flow(check_version=False)\n .add_preprocessor(name='prep', yaml_path='yaml/prep.yml')\n .add_encoder(yaml_path='yaml/incep.yml')\n .add_indexer(name='vec_idx', yaml_path='yaml/vec.yml')\n .add_indexer(name='doc_idx', yaml_path='yaml/doc.yml', recv_from='prep')\n .add_router(name='sync', yaml_path='BaseReduceRouter', num_part=2, recv_from=['vec_idx', 'doc_idx']))\n```\n\nHere, we use [the inceptionV4 pretrained model](https://github.com/tensorflow/models/tree/master/research/slim) as the encoder and the built-in indexers for storing vectors and documents. The flow should be quite self-explanatory, if not, you can always convert it to a SVG image and see its visualization:\n\n```python\nflow.build(backend=None).to_url()\n``` \n\n

\n\n\"index\"\n\n

\n\n#### Indexing flower image data\n\nTo index our flower data, we need an iterator that generates `bytes` strings and feed those `bytes` strings into the defined flow.\n\n```python\ndef read_flowers(sample_rate=1.0):\n with tarfile.open('17flowers.tgz') as fp:\n for m in fp.getmembers():\n if m.name.endswith('.jpg') and random.random() <= sample_rate:\n yield fp.extractfile(m).read()\n```\n\nWe can now do indexing via the multi-process backend:\n\n```python\nwith flow(backend='process') as fl:\n fl.index(bytes_gen=read_flowers(), batch_size=64)\n```\n\nIt will take few minutes depending on your machine.\n\n#### Querying similar flowers\n\nWe simply sample 20 flower images as queries and search for their top-10 similar images: \n\n```python\nnum_q = 20\ntopk = 10\nsample_rate = 0.05\n\n# do the query\nresults = []\nwith flow.build(backend='process') as fl:\n for q, r in fl.query(bytes_gen=read_flowers(sample_rate)):\n q_img = q.search.query.raw_bytes\n r_imgs = [k.doc.raw_bytes for k in r.search.topk_results]\n r_scores = [k.score.value for k in r.search.topk_results]\n results.append((q_img, r_imgs, r_scores))\n if len(results) > num_q:\n break\n```\n\nHere is the result, where queries are on the first row.\n\n![](.github/0a3f26d8.png)\n\n### Elastic made easy\n\nTo increase the number of parallel components in the flow, simply add `replicas` to each service:\n\n```python\nflow = (Flow(check_version=False, ctrl_with_ipc=True)\n .add_preprocessor(name='prep', yaml_path='yaml/prep.yml', replicas=5)\n .add_encoder(yaml_path='yaml/incep.yml', replicas=6)\n .add_indexer(name='vec_idx', yaml_path='yaml/vec.yml')\n .add_indexer(name='doc_idx', yaml_path='yaml/doc.yml', recv_from='prep')\n .add_router(name='sync', yaml_path='BaseReduceRouter', num_part=2, recv_from=['vec_idx', 'doc_idx']))\n```\n\n```python\nflow.build(backend=None).to_url()\n```\n\n

\n\n\"replicas\"\n\n

\n\n### Deploying a flow via Docker Swarm/Kubernetes\n\nOne can convert a `Flow` object to Docker Swarm/Kubernetes YAML compose file very easily via:\n```python\nflow.build(backend=None).to_swarm_yaml()\n```\n\n```yaml\nversion: '3.4'\nservices:\n Frontend0:\n image: gnes/gnes:latest-alpine\n command: frontend --port_in 56086 --port_out 52674 --port_ctrl 49225 --check_version\n False --ctrl_with_ipc True\n prep:\n image: gnes/gnes:latest-alpine\n command: preprocess --port_in 52674 --port_out 65461 --host_in Frontend0 --socket_in\n PULL_CONNECT --socket_out PUB_BIND --port_ctrl 49281 --check_version False --ctrl_with_ipc\n True --yaml_path yaml/prep.yml\n Encoder0:\n image: gnes/gnes:latest-alpine\n command: encode --port_in 65461 --port_out 50488 --host_in prep --socket_in SUB_CONNECT\n --port_ctrl 62298 --check_version False --ctrl_with_ipc True --yaml_path yaml/incep.yml\n vec_idx:\n image: gnes/gnes:latest-alpine\n command: index --port_in 50488 --port_out 57791 --host_in Encoder0 --host_out\n sync --socket_in PULL_CONNECT --socket_out PUSH_CONNECT --port_ctrl 58367 --check_version\n False --ctrl_with_ipc True --yaml_path yaml/vec.yml\n doc_idx:\n image: gnes/gnes:latest-alpine\n command: index --port_in 65461 --port_out 57791 --host_in prep --host_out sync\n --socket_in SUB_CONNECT --socket_out PUSH_CONNECT --port_ctrl 50333 --check_version\n False --ctrl_with_ipc True --yaml_path yaml/doc.yml\n sync:\n image: gnes/gnes:latest-alpine\n command: route --port_in 57791 --port_out 56086 --host_out Frontend0 --socket_out\n PUSH_CONNECT --port_ctrl 51285 --check_version False --ctrl_with_ipc True --yaml_path\n BaseReduceRouter --num_part 2\n```\n\n\nTo deploy it, simply copy the generated YAML config to a file say `my-gnes.yml`, and then do\n\n```bash\ndocker stack deploy --compose-file my-gnes.yml gnes-531\n```\n\n\n### Building a cloud-native semantic poem search engine\n\nIn this example, we will build a semantic poem search engine using GNES. Unlike the previous flower search example, here we run each service as an isolated Docker container and then orchestrate them via Docker Swarm. It represents a common scenario in the cloud settings. You will learn how to use powerful and customized GNES images from [GNES hub](https://github.com/gnes-ai/hub).\n\n\ud83d\udd30 Please checkout [this repository for details](https://github.com/gnes-ai/demo-poems-ir) and follow the instructions to reproduce.\n\n

\n\n\"query\"\n\n

\n\n\n### \ud83d\udc68\u200d\ud83d\udcbb\ufe0f Take-home messages\n\nLet's make a short recap of what we have learned. \n\n- GNES is *all-in-microservice*, there are four fundamental components: preprocessor, encoder, indexer and router.\n- GNES has three typical workflows: train, index, and query.\n- One can leverage [GNES Flow API](http://doc.gnes.ai/en/latest/api/gnes.flow.html) to define, modify, export or even visualize a workflow.\n- GNES requires an orchestration engine to coordinate all microservices. It supports Kubernetes, Docker Swarm, or built-in multi-process/thread solution. \n\n\n

Documentation

\n\n[![ReadTheDoc](https://readthedocs.org/projects/gnes/badge/?version=latest&style=for-the-badge)](https://doc.gnes.ai)\n\nThe official documentation of GNES is hosted on [doc.gnes.ai](https://doc.gnes.ai/). It is automatically built, updated and archived on every new release.\n\n

Tutorial

\n\n> \ud83d\udea7 Tutorial is still under construction. Stay tuned! Meanwhile, we sincerely welcome you to contribute your own learning experience / case study with GNES! \n\n- [How to write your GNES YAML config](tutorials/gnes-compose-yaml-spec.md)\n- [How to write a component-wise YAML config](tutorials/component-yaml-spec.md)\n- [Model management with GNES Hub](https://github.com/gnes-ai/hub#tutorial)\n * [Porting `PyTorch-Transformers` into GNES](https://github.com/gnes-ai/hub#porting-pytorch-transformers-into-gnes)\n * [Porting multiple modules in a row](https://github.com/gnes-ai/hub#porting-multiple-modules-in-a-row)\n * [Cherry-picking dependencies and build your own GNES](https://github.com/gnes-ai/hub#cherry-picking-dependencies-to-enable-gnes-built-in-models)\n- [Understanding preprocessor, encoder, indexer and router](https://hanxiao.github.io/2019/07/29/Generic-Neural-Elastic-Search-From-bert-as-service-and-Go-Way-Beyond/#gnes-preliminaries-breakdown-of-neural-elastic-and-search)\n- Index and query text data with GNES\n- Index and query image data with GNES\n- Index and query video data with GNES\n- Using GNES with Kubernetes\n- Using GNES in other language (besides Python)\n- Serves HTTP-request with GNES in an end-to-end way\n- Migrating from [`bert-as-service`](https://github.com/hanxiao/bert-as-service)\n\n

Benchmark

\n\nWe have setup [this repository](https://github.com/gnes-ai/benchmark) to track the network latency over different GNES versions. As a part of CICD pipeline, this repo gets automatically updated when the [GNES master](https://github.com/gnes-ai/gnes) is updated or a new [GNES version is released](https://github.com/gnes-ai/gnes/releases).\n\n\n

Contributing

\n\nThanks for your interest in contributing! GNES always welcome the contribution from the open-source community, individual committers and other partners. Without you, GNES can't be successful.\n\nCurrently there are three major directions of contribution:\n- **Porting state-of-the-art models to GNES**. This includes new preprocessing algorithms, new DNN networks for encoding, and new high-performance index. Believe me, it is super easy to wrap an algorithm and use it in GNES. Checkout this example.\n- **Adding tutorial and learning experience**. What is good and what can be improved? If you apply GNES in your domain, whether it's about NLP or CV, whether it's a blog post or a Reddit/Twitter thread, we are always eager to hear your thoughts.\n- **Completing the user experience of other programming languages**. GNES offers a generic interface with gRPC and protobuf, therefore it is easy to add an interface for other languages, e.g. Java, C, Go. \n\nMake sure to read the contributor guidelines before your first commit. \n\n- [Contributor guidelines](./CONTRIBUTING.md)\n- [Open issues](/issues)\n- [Release notes](./CHANGELOG.md)\n\nFor contributors looking to get deeper into the API we suggest cloning the repository and checking out the unit tests for examples of how to call methods.\n\n

Citing GNES

\n\nIf you use GNES in an academic paper, you are more than welcome to make a citation. Here are the two ways of citing GNES:\n\n1. \\footnote{https://github.com/gnes-ai/gnes}\n2. \n ```latex\n @misc{tencent2019GNES,\n title={GNES: Generic Neural Elastic Search},\n author={Xiao, Han and Yan, Jianfeng and Wang, Feng and Fu, Jie and Liu, Kai},\n howpublished={\\url{https://github.com/gnes-ai}},\n year={2019}\n }\n ```\n\n

License

\n\nIf you have downloaded a copy of the GNES binary or source code, please note that the GNES binary and source code are both licensed under the [Apache License, Version 2.0](./LICENSE).\n\n\nTencent is pleased to support the open source community by making GNES available.
\nCopyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.\n
\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/gnes-ai/gnes/tags", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gnes.ai", "keywords": "gnes cloud-native semantic search elastic neural-network encoding embedding serving", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "gnes", "package_url": "https://pypi.org/project/gnes/", "platform": "", "project_url": "https://pypi.org/project/gnes/", "project_urls": { "Download": "https://github.com/gnes-ai/gnes/tags", "Homepage": "https://gnes.ai" }, "release_url": "https://pypi.org/project/gnes/0.0.46/", "requires_dist": [ "numpy", "termcolor", "protobuf", "grpcio", "ruamel.yaml (>=0.15.89)", "pyzmq (>=17.1.0)", "aiohttp ; extra == 'aiohttp'", "psutil (>=5.6.1) ; extra == 'all'", "gputil (>=1.4.0) ; extra == 'all'", "memory-profiler (>=0.55.0) ; extra == 'all'", "aiohttp ; extra == 'all'", "image ; extra == 'all'", "plyvel (>=1.0.5) ; extra == 'all'", "onnxruntime ; extra == 'all'", "imagehash (>=4.0) ; extra == 'all'", "flask ; extra == 'all'", "annoy (==1.15.2) ; extra == 'all'", "pytorch-transformers ; extra == 'all'", "librosa (>=0.7.0) ; extra == 'all'", "scipy ; extra == 'all'", "pylint ; extra == 'all'", "peakutils ; extra == 'all'", "flair (>=0.4.1) ; extra == 'all'", "bert-serving-client (>=1.8.6) ; extra == 'all'", "opencv-python (>=4.0.0) ; extra == 'all'", "bert-serving-server (>=1.8.6) ; extra == 'all'", "jieba ; extra == 'all'", "sklearn ; extra == 'all'", "annoy (==1.15.2) ; extra == 'annoy'", "librosa (>=0.7.0) ; extra == 'audio'", "bert-serving-server (>=1.8.6) ; extra == 'bert'", "bert-serving-client (>=1.8.6) ; extra == 'bert'", "jieba ; extra == 'chinese'", "flair (>=0.4.1) ; extra == 'cn_nlp'", "bert-serving-client (>=1.8.6) ; extra == 'cn_nlp'", "bert-serving-server (>=1.8.6) ; extra == 'cn_nlp'", "jieba ; extra == 'cn_nlp'", "pytorch-transformers ; extra == 'cn_nlp'", "flair (>=0.4.1) ; extra == 'flair'", "flask ; extra == 'flask'", "flask ; extra == 'http'", "aiohttp ; extra == 'http'", "plyvel (>=1.0.5) ; extra == 'leveldb'", "bert-serving-server (>=1.8.6) ; extra == 'nlp'", "pytorch-transformers ; extra == 'nlp'", "bert-serving-client (>=1.8.6) ; extra == 'nlp'", "flair (>=0.4.1) ; extra == 'nlp'", "onnxruntime ; extra == 'onnx'", "scipy ; extra == 'scipy'", "sklearn ; extra == 'scipy'", "pylint ; extra == 'test'", "memory-profiler (>=0.55.0) ; extra == 'test'", "psutil (>=5.6.1) ; extra == 'test'", "gputil (>=1.4.0) ; extra == 'test'", "pytorch-transformers ; extra == 'transformers'", "opencv-python (>=4.0.0) ; extra == 'vision'", "imagehash (>=4.0) ; extra == 'vision'", "image ; extra == 'vision'", "peakutils ; extra == 'vision'" ], "requires_python": "", "summary": "GNES is Generic Neural Elastic Search, a cloud-native semantic search system based on deep neural network.", "version": "0.0.46" }, "last_serial": 5988911, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "a2b8793bc3931c06d22e8021ee135205", "sha256": "822e8a696b6b6dd500d160838409fb6f9238df3b3ea4d853fca55cd90d8e918f" }, "downloads": -1, "filename": "gnes-0.0.10-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "a2b8793bc3931c06d22e8021ee135205", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 186016, "upload_time": "2019-07-09T08:51:23", "url": "https://files.pythonhosted.org/packages/2d/23/5436eac20b8117729612ead9cfa290554d82a452ee87ab6b5ac4bcb3aecd/gnes-0.0.10-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "944f51bafd96be5e4206e838e4573a92", "sha256": "e1bbb6010b295d1a03b2997184995b2cc63fe9101c9ee2f0046de5311a6790c5" }, "downloads": -1, "filename": "gnes-0.0.10.tar.gz", "has_sig": false, "md5_digest": "944f51bafd96be5e4206e838e4573a92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69879, "upload_time": "2019-07-09T08:51:26", "url": "https://files.pythonhosted.org/packages/0d/25/4a19ca0abd93da25628581f7fbe90290e52066c950a8ccac4d3a7677b468/gnes-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "6b1e28daa937b0e63a484222bd000069", "sha256": "6959b5d84fabd012afad008a7d308438e4d81cb114845082a65c48324aa2dc65" }, "downloads": -1, "filename": "gnes-0.0.11-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "6b1e28daa937b0e63a484222bd000069", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 186017, "upload_time": "2019-07-09T09:36:33", "url": "https://files.pythonhosted.org/packages/25/3d/e064b3c6190acdea929a038e98f26b9835cc94377ab11ae4293d6a4c7609/gnes-0.0.11-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "843008952246c4eb960e0648d6f4f757", "sha256": "83eba77ce78d9c6483a07842809c7559ae70f81056fa7f56cb63f60253ce3c7c" }, "downloads": -1, "filename": "gnes-0.0.11.tar.gz", "has_sig": false, "md5_digest": "843008952246c4eb960e0648d6f4f757", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69877, "upload_time": "2019-07-09T09:36:36", "url": "https://files.pythonhosted.org/packages/8e/6c/e8e3a504e468dcdf99d204a5870faab93766d237a4342b4663a4e4efe257/gnes-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "ae01806fec033c06f7fec992eed1df50", "sha256": "d3deea32fd56907159a2b8a9cdc6098b027ec4a55b204105815342decaf010f0" }, "downloads": -1, "filename": "gnes-0.0.12-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "ae01806fec033c06f7fec992eed1df50", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 186012, "upload_time": "2019-07-09T09:49:57", "url": "https://files.pythonhosted.org/packages/13/0b/98ae40d909a97b795338fe5e082896257fac165b554e935c594eaa27c9e3/gnes-0.0.12-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "65247b1e2963f8cc24710f6abe53f450", "sha256": "bee1aaa0afb52e16050cf6701832030a0a6b261760b213955616df6294681390" }, "downloads": -1, "filename": "gnes-0.0.12.tar.gz", "has_sig": false, "md5_digest": "65247b1e2963f8cc24710f6abe53f450", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69882, "upload_time": "2019-07-09T09:50:00", "url": "https://files.pythonhosted.org/packages/c5/9a/cff8c792e235a40d26cdd7f674755ca15b3f7f285287b4940b8fb04dc4ce/gnes-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "c2c42b69e08fcbea08817f1cdb53b4d0", "sha256": "b71dcd24db02669b8576667a6aa502254d15d261e4fab5e594881401c199ce78" }, "downloads": -1, "filename": "gnes-0.0.13-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "c2c42b69e08fcbea08817f1cdb53b4d0", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 186010, "upload_time": "2019-07-09T09:53:27", "url": "https://files.pythonhosted.org/packages/88/a8/b75c95dbed239414310232fce61e49ec6ceab03f37ecff7a5ea0859cd70f/gnes-0.0.13-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "4e33a61436c926ca8128d8cc953c1382", "sha256": "13d02fe96d51380da3049b9babd44c54e350b99e8c4d7be9e2e807eb57cc8517" }, "downloads": -1, "filename": "gnes-0.0.13.tar.gz", "has_sig": false, "md5_digest": "4e33a61436c926ca8128d8cc953c1382", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69878, "upload_time": "2019-07-09T09:53:30", "url": "https://files.pythonhosted.org/packages/2e/6c/7081be4f07b6249239e71ae8beec25a273169067dc49f8ddf4c3dc38a97c/gnes-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "ea83fcb39c2050f49cee6ed82426147b", "sha256": "e0cd6f48b8ae756578ef40119d6ac3b2faa7d59b7baf16fedc36a61489a0e74d" }, "downloads": -1, "filename": "gnes-0.0.14-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "ea83fcb39c2050f49cee6ed82426147b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 189467, "upload_time": "2019-07-09T11:27:18", "url": "https://files.pythonhosted.org/packages/22/3c/e7fcd038b50d130601f04a7fc3267a5f4d0297e5af63fada83537bf510b9/gnes-0.0.14-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "b71ea3dd6a115961f5a71df8019786dd", "sha256": "da91e2a141fa87ba426befed18a95cad799a489593df386d3dd623b78ebdfbaa" }, "downloads": -1, "filename": "gnes-0.0.14.tar.gz", "has_sig": false, "md5_digest": "b71ea3dd6a115961f5a71df8019786dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71244, "upload_time": "2019-07-09T11:27:21", "url": "https://files.pythonhosted.org/packages/83/c2/86bbeef1ac080520bbf4b648bafb272de0028215aea1f7800dc13e925ed7/gnes-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "511c45756c0ba10ab4c4102aea7aa289", "sha256": "2329528488f94bc4edc8d9ddc675ed6494048683ed62c25563a04bb69f7ab977" }, "downloads": -1, "filename": "gnes-0.0.15-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "511c45756c0ba10ab4c4102aea7aa289", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 189382, "upload_time": "2019-07-09T11:41:28", "url": "https://files.pythonhosted.org/packages/22/e4/0f3f717004dcd71b705e8d5dcc17cecc7ec10097ec002b8f9b322d4d21d8/gnes-0.0.15-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a83c706e4f432884d4b1269e2cb1ac24", "sha256": "9e46e803e7b8207656ddefa3c2f1f0fdbe2ec37f78988f50f08523330e14703e" }, "downloads": -1, "filename": "gnes-0.0.15.tar.gz", "has_sig": false, "md5_digest": "a83c706e4f432884d4b1269e2cb1ac24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70997, "upload_time": "2019-07-09T11:41:31", "url": "https://files.pythonhosted.org/packages/3b/ed/033d3ab3f4e4a8428a3f0413b26958a753129b9068b8d0db7357886280e1/gnes-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "277a17e33ddd671f98a2661e980a1b4e", "sha256": "366820818b1af43eee70b2753dbb6c59c067df466c9fafba61ef4e43cd89b73d" }, "downloads": -1, "filename": "gnes-0.0.16-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "277a17e33ddd671f98a2661e980a1b4e", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 190634, "upload_time": "2019-07-11T09:32:08", "url": "https://files.pythonhosted.org/packages/e4/70/5e7a80060cd79928eb3fa6c5aef6669804c9e96c3589bde3e65d59ecfd52/gnes-0.0.16-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "3004d0786707a13c0bce464c7a51d85a", "sha256": "90af2dc507038044f67c13e1bc1ab974f3899bf561d5556fbff5bc8e2ae28b27" }, "downloads": -1, "filename": "gnes-0.0.16.tar.gz", "has_sig": false, "md5_digest": "3004d0786707a13c0bce464c7a51d85a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72221, "upload_time": "2019-07-11T09:32:11", "url": "https://files.pythonhosted.org/packages/8c/a0/80bc714fde58c90594a4c0106fc3f454880e5474d3d8321404187ff7afee/gnes-0.0.16.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "6ffda8d9e1e178515338bfd1928b2305", "sha256": "e0eac0f5202b054be2103131d8b8d03eac7aa119d9adb3daf4e46a4c75554159" }, "downloads": -1, "filename": "gnes-0.0.18-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "6ffda8d9e1e178515338bfd1928b2305", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 190676, "upload_time": "2019-07-11T09:41:49", "url": "https://files.pythonhosted.org/packages/09/af/428618b5bea51149b8a3a54efc01811b1e042a98cd02f2228bb3505f1865/gnes-0.0.18-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "fbfaa874d62c84e7a282b8d471bdb554", "sha256": "bd2d9481c5529df6bf6e5dd5ecd74ffb179a02e1bd7df8e5ba1367765ec542d4" }, "downloads": -1, "filename": "gnes-0.0.18.tar.gz", "has_sig": false, "md5_digest": "fbfaa874d62c84e7a282b8d471bdb554", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72269, "upload_time": "2019-07-11T09:41:52", "url": "https://files.pythonhosted.org/packages/e9/14/8b00c93079492dc1bdb9d172aef77e702366a68076684211a7ba69aa820d/gnes-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "1e11c36feb6275acc300e0f1eed0cff0", "sha256": "878e84f3ec34e7ead906f1da2ad04fbeccceba390e808d326b0c7486ccdd6825" }, "downloads": -1, "filename": "gnes-0.0.19-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "1e11c36feb6275acc300e0f1eed0cff0", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 190673, "upload_time": "2019-07-11T09:45:48", "url": "https://files.pythonhosted.org/packages/46/64/2e0aee22fadb655470bad3bfb300c70118df5084c5304f58e3086aae3073/gnes-0.0.19-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "166c5ec1d2c3d87f5076e6c96ff543ec", "sha256": "031fab5e830d7d27e73748a51e460069eab64d1562e608196bb07b83e7bd9c17" }, "downloads": -1, "filename": "gnes-0.0.19.tar.gz", "has_sig": false, "md5_digest": "166c5ec1d2c3d87f5076e6c96ff543ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72266, "upload_time": "2019-07-11T09:45:51", "url": "https://files.pythonhosted.org/packages/6d/36/f01a4c38ae1bf5cfdaa6f1242142c530a887b19672a8a46ac79c3ee24f00/gnes-0.0.19.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "d043f165a78323b70c02b2765c07ad21", "sha256": "84c3f8144d1aaa477e398c503cfe582f28c1f7f952eca39057e9b13e0d4d2e26" }, "downloads": -1, "filename": "gnes-0.0.20-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "d043f165a78323b70c02b2765c07ad21", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 190672, "upload_time": "2019-07-11T09:56:28", "url": "https://files.pythonhosted.org/packages/c3/15/4b637f2c565a7dac300c74f57e6ed580ddc7ac3f2b80d7863103e752e0f9/gnes-0.0.20-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a2b099e90eff9e130d58dff49b67641a", "sha256": "08a77a47a0893020326f8c4e043ed5e313f9f16f8c907130e22f9b2d88dffab1" }, "downloads": -1, "filename": "gnes-0.0.20.tar.gz", "has_sig": false, "md5_digest": "a2b099e90eff9e130d58dff49b67641a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72264, "upload_time": "2019-07-11T09:56:31", "url": "https://files.pythonhosted.org/packages/d6/00/b5c3ab282ba257bf6f27d6f02343c4211e0ecaa32ac150cee2192d88ffc0/gnes-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "0e8a5ef0164b26bb436bac4cf0832cf8", "sha256": "212bcaa885107f3a1b9fd67ed4e8d01b79db3d46eaa5d458b4c0d60372bc3d99" }, "downloads": -1, "filename": "gnes-0.0.21-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "0e8a5ef0164b26bb436bac4cf0832cf8", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 190673, "upload_time": "2019-07-11T09:57:39", "url": "https://files.pythonhosted.org/packages/f0/4f/a2b0d7479ab4e2c77e002923ded59b513111edfa87e4fb45f98c9ac8d535/gnes-0.0.21-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "3937465164c09f4f5e464cfec928e6c7", "sha256": "7df39bdbe079cee83332ed4e6c23eef7f4c2e77fa057ad82f0e6e540464bc59a" }, "downloads": -1, "filename": "gnes-0.0.21.tar.gz", "has_sig": false, "md5_digest": "3937465164c09f4f5e464cfec928e6c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72285, "upload_time": "2019-07-11T09:57:42", "url": "https://files.pythonhosted.org/packages/2a/fd/7dfebd76cab5bdf0ba34f217d55a9716507c29e97a4a0ba63cf951cb70c8/gnes-0.0.21.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "5e56964ff686fca1e12fa48eac78dac5", "sha256": "8ed9e5c7cb6e1c92fae1b3dae5eb06edbf4b09435fc463b26d30efbd8b15e195" }, "downloads": -1, "filename": "gnes-0.0.22-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "5e56964ff686fca1e12fa48eac78dac5", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 190670, "upload_time": "2019-07-11T11:15:03", "url": "https://files.pythonhosted.org/packages/1a/df/56eef1e1ebcbcc4ea6dbd383d620eb1ef9677fe68571a196f95c4c80516a/gnes-0.0.22-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ebd24409a6653eff65ec820c7cf57cd6", "sha256": "900b52edb54f787a1f4cbd44aa49784f19f68c6ed4205c1f67f0c5c1deb8709c" }, "downloads": -1, "filename": "gnes-0.0.22.tar.gz", "has_sig": false, "md5_digest": "ebd24409a6653eff65ec820c7cf57cd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72277, "upload_time": "2019-07-11T11:15:07", "url": "https://files.pythonhosted.org/packages/b0/37/d91c5a6378580d6a9c2a021a32a8ba92f0685bed891e70ad170b3e6a61a1/gnes-0.0.22.tar.gz" } ], "0.0.23": [ { "comment_text": "", "digests": { "md5": "7010fbf3f61f6bf43cac05a107a01aa5", "sha256": "737857343bc9497148a39c0c43bae2423b03f2922fa457d4aeda94806b850077" }, "downloads": -1, "filename": "gnes-0.0.23-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "7010fbf3f61f6bf43cac05a107a01aa5", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 214536, "upload_time": "2019-07-17T10:28:25", "url": "https://files.pythonhosted.org/packages/bc/13/57121cba5ec2111a6fc616d75bc25de8ac496b9f22b5d3c5a76f3f430c26/gnes-0.0.23-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "42893d305203f573770c95b53ecf96da", "sha256": "c5dc818d18ea883f21085b5f727a57bf34b56fc1e974da59a2641823a561b857" }, "downloads": -1, "filename": "gnes-0.0.23.tar.gz", "has_sig": false, "md5_digest": "42893d305203f573770c95b53ecf96da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89997, "upload_time": "2019-07-17T10:28:28", "url": "https://files.pythonhosted.org/packages/60/22/9c0c7d08bd363bbb7a0c47f455cd5d2ccf99c129941fe76a35572fa6955b/gnes-0.0.23.tar.gz" } ], "0.0.24": [ { "comment_text": "", "digests": { "md5": "845a4365269ac97a88cd9ccbbe593590", "sha256": "2183aa5c1538c5ea195ba216ce7a7db7dc26d46633794ce923aa379f8fc9370e" }, "downloads": -1, "filename": "gnes-0.0.24-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "845a4365269ac97a88cd9ccbbe593590", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 216828, "upload_time": "2019-07-19T10:19:03", "url": "https://files.pythonhosted.org/packages/4b/cb/23598bac37e6b3a2188efa5305fc2aeedf37b9ece7c2a37c3547f07b51cf/gnes-0.0.24-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "01eaaa43cdf5d05fe0e6b7d42f60f1a1", "sha256": "38ca472f24855268965ade5fed8928720951e42741d6c373cade6d8982444e81" }, "downloads": -1, "filename": "gnes-0.0.24.tar.gz", "has_sig": false, "md5_digest": "01eaaa43cdf5d05fe0e6b7d42f60f1a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90726, "upload_time": "2019-07-19T10:19:07", "url": "https://files.pythonhosted.org/packages/13/6d/216e093a782ddea4e0a15cddfa6aafc44c3149addc7071c23c5ce24c4b01/gnes-0.0.24.tar.gz" } ], "0.0.25": [ { "comment_text": "", "digests": { "md5": "4cc86784f7d04eb10180d5dd42a944b7", "sha256": "e85041dc3fc1e00dfcbd8b720c817f5030dddafe66e0f1b52258f7c73be7ee87" }, "downloads": -1, "filename": "gnes-0.0.25-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "4cc86784f7d04eb10180d5dd42a944b7", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 236151, "upload_time": "2019-07-26T11:45:45", "url": "https://files.pythonhosted.org/packages/f8/b7/08b3e5944cde51d640742001a23abd4026bf33e891378a67277783268098/gnes-0.0.25-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "5c063533e59982dd6c3b231678a2fa6f", "sha256": "ce60add11386b501a3a95de4b246e6669aa27281f928ffde0386f35de27d4509" }, "downloads": -1, "filename": "gnes-0.0.25.tar.gz", "has_sig": false, "md5_digest": "5c063533e59982dd6c3b231678a2fa6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116969, "upload_time": "2019-07-26T11:45:49", "url": "https://files.pythonhosted.org/packages/46/ad/a368538f055cfdbc9a08277937cc8ebc614761bc4f31eb59f354c40af980/gnes-0.0.25.tar.gz" } ], "0.0.26": [ { "comment_text": "", "digests": { "md5": "b9cf43fa9f81f7a9cb466cd287aa5097", "sha256": "63dd77e9ae602f3da3c09933c024cb128a9a335eadd953b68f718c9249886453" }, "downloads": -1, "filename": "gnes-0.0.26-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "b9cf43fa9f81f7a9cb466cd287aa5097", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 243777, "upload_time": "2019-08-02T10:19:05", "url": "https://files.pythonhosted.org/packages/0e/a2/285b577c69b009b30472479bb8b757378060ff17a66a24fc5df3a096c942/gnes-0.0.26-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "5b3e185137cc3c4ecb0715750521278a", "sha256": "e8be36ed0ddc080e1af1ee679e46f33e1a1e48aed237f46d190098d9769d64ce" }, "downloads": -1, "filename": "gnes-0.0.26.tar.gz", "has_sig": false, "md5_digest": "5b3e185137cc3c4ecb0715750521278a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120992, "upload_time": "2019-08-02T10:19:09", "url": "https://files.pythonhosted.org/packages/18/3e/5b6aaf0b3af44d39c408cedb2444fdf162171cc047e2b10394b11ae9dc09/gnes-0.0.26.tar.gz" } ], "0.0.27": [ { "comment_text": "", "digests": { "md5": "d54654dc167765c18a6afb24fe91104b", "sha256": "f26f1ed3147d6f365d315bd1aff9d278456ff03cd77cd7ab1f6311428112842b" }, "downloads": -1, "filename": "gnes-0.0.27-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "d54654dc167765c18a6afb24fe91104b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 258456, "upload_time": "2019-08-09T11:52:26", "url": "https://files.pythonhosted.org/packages/95/76/b0e87925a36eb01f4f783f6a1f92ce0526bdfad36d8a498732789cc02581/gnes-0.0.27-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "c2314b646e4fdcd079741ba130ed0679", "sha256": "153a583eb68c4a41ae16b956a4818e72bb53241b0f8e31672f42620f2902c002" }, "downloads": -1, "filename": "gnes-0.0.27.tar.gz", "has_sig": false, "md5_digest": "c2314b646e4fdcd079741ba130ed0679", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 128421, "upload_time": "2019-08-09T11:52:30", "url": "https://files.pythonhosted.org/packages/f4/1d/54e687d1291c805d10096548d49401900eca3ab719cac5a248dfc4e99b4f/gnes-0.0.27.tar.gz" } ], "0.0.28": [ { "comment_text": "", "digests": { "md5": "180e8152855b0217d948e28690041f8d", "sha256": "b65c070aa74f9369fb4d86e1f27832b98d1b6b6d39e532c2580cbe21f917c23c" }, "downloads": -1, "filename": "gnes-0.0.28-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "180e8152855b0217d948e28690041f8d", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 259709, "upload_time": "2019-08-14T12:54:40", "url": "https://files.pythonhosted.org/packages/c5/32/cd9aa4fc15600568e81f8baed6d7cf7343081140090bab5da5fbc1fc36a7/gnes-0.0.28-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "9a302537f0d1807b87e1de3184b2be64", "sha256": "cc4c2e72ab4a4b1bc77f6d60c6408225dad879176d96b4d8387d71cbe0714958" }, "downloads": -1, "filename": "gnes-0.0.28.tar.gz", "has_sig": false, "md5_digest": "9a302537f0d1807b87e1de3184b2be64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 129913, "upload_time": "2019-08-14T12:54:44", "url": "https://files.pythonhosted.org/packages/d6/8d/5f252ddb523f83ef4b229e739184212c4c45e540586f982e2fb35cf1348f/gnes-0.0.28.tar.gz" } ], "0.0.29": [ { "comment_text": "", "digests": { "md5": "ddd6d8763365f43de11b20ab635bb969", "sha256": "04c7f36a5711dc4fbf99c16a5e58415dc0b61f6c9199d00c7a6fc50a06d1063d" }, "downloads": -1, "filename": "gnes-0.0.29-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "ddd6d8763365f43de11b20ab635bb969", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 260467, "upload_time": "2019-08-16T07:40:52", "url": "https://files.pythonhosted.org/packages/2f/6d/4ba8a2b3e074621a93628c182bc376458bf52596dd4ab690b6bda09028b8/gnes-0.0.29-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "9a0fa94eb9c28fbd8f90954826f28175", "sha256": "a9f2824aa6f5af2b95d22b0d2d7a3f780730f7d9c6d2d3d1749835ea2a3499a8" }, "downloads": -1, "filename": "gnes-0.0.29.tar.gz", "has_sig": false, "md5_digest": "9a0fa94eb9c28fbd8f90954826f28175", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 132046, "upload_time": "2019-08-16T07:40:56", "url": "https://files.pythonhosted.org/packages/01/59/7cde917754429027627d6bfff65ba071f511271e3722b6b18d66736cb44a/gnes-0.0.29.tar.gz" } ], "0.0.30": [ { "comment_text": "", "digests": { "md5": "683e18e74eb570262e2a1350ed3e8bc6", "sha256": "f6bc9d408ff6b5b427ae60dc15ce87dfc6aeb852b3fbf628df85615080a9c855" }, "downloads": -1, "filename": "gnes-0.0.30-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "683e18e74eb570262e2a1350ed3e8bc6", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 261344, "upload_time": "2019-08-19T06:13:49", "url": "https://files.pythonhosted.org/packages/0d/fd/f9747bb0fd933583b436a1ab5e7e6d4d2b59956005452274a22b1d80f7d3/gnes-0.0.30-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "32f995d32e57028f38d2e2a82a493070", "sha256": "1472849a56e6154b7fa16e6896bffffb03927c5684bac44b1f9a1b292e7bd558" }, "downloads": -1, "filename": "gnes-0.0.30.tar.gz", "has_sig": false, "md5_digest": "32f995d32e57028f38d2e2a82a493070", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 132714, "upload_time": "2019-08-19T06:13:51", "url": "https://files.pythonhosted.org/packages/16/28/fcc72d8a590418301929d5e12409f047d7c8122378e6c8e8904165922dce/gnes-0.0.30.tar.gz" } ], "0.0.31": [ { "comment_text": "", "digests": { "md5": "4cd7e7324afbf493e166c9cb831f3125", "sha256": "f5bea8e5520f41098a001bcaa2e2f1b5e82ff5e6970c84e9e259e0e0fcce2a88" }, "downloads": -1, "filename": "gnes-0.0.31-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "4cd7e7324afbf493e166c9cb831f3125", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 261860, "upload_time": "2019-08-20T06:01:29", "url": "https://files.pythonhosted.org/packages/66/a6/894cfbfcf6037b371f15801dc6e6893a9a4e2ce642fd8a3773a3dbbb293a/gnes-0.0.31-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "08503f2a3f301943ad609bf6b9cf7a5d", "sha256": "2bbd2918fb142909ce11d649372fa313acad9d13222fa04ac7fb990e52fad249" }, "downloads": -1, "filename": "gnes-0.0.31.tar.gz", "has_sig": false, "md5_digest": "08503f2a3f301943ad609bf6b9cf7a5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 133337, "upload_time": "2019-08-20T06:01:34", "url": "https://files.pythonhosted.org/packages/5d/85/9b8c1d0038c0b25657bde35dd6e60409f6546eed1dd9dd1b2d0b6d7e3fb6/gnes-0.0.31.tar.gz" } ], "0.0.32": [ { "comment_text": "", "digests": { "md5": "9a2059bfe114c362e464292664c087fa", "sha256": "05f50b094d10bc8564cd59caba033063330ec47bb8f11751b77e46e68617fd21" }, "downloads": -1, "filename": "gnes-0.0.32-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "9a2059bfe114c362e464292664c087fa", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 262710, "upload_time": "2019-08-21T09:23:30", "url": "https://files.pythonhosted.org/packages/4f/21/1fd60424f56b4cf07e06239d063f80ae92979d08bd11997abddbcc50efca/gnes-0.0.32-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "f1ac6e802f16132088d6e4d41df06b59", "sha256": "80894f47b3683d67e62c93ee3383f3a58797daa0f306069b9aa6f637a737146a" }, "downloads": -1, "filename": "gnes-0.0.32.tar.gz", "has_sig": false, "md5_digest": "f1ac6e802f16132088d6e4d41df06b59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 135102, "upload_time": "2019-08-21T09:23:35", "url": "https://files.pythonhosted.org/packages/b5/f6/1043c3c664e5ef286d7f7f5f78005ec48e1ff6b9f6e0d128065bb0160ecb/gnes-0.0.32.tar.gz" } ], "0.0.33": [ { "comment_text": "", "digests": { "md5": "01272ade8948106fc9b316dac9690dfb", "sha256": "18ec79f0060b43c1d226fce0616707507d82e495825f95ce0d49ca80227ef03a" }, "downloads": -1, "filename": "gnes-0.0.33-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "01272ade8948106fc9b316dac9690dfb", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 265313, "upload_time": "2019-08-23T10:34:48", "url": "https://files.pythonhosted.org/packages/6d/3e/b3e83e9a825b0728add2fdd1461ee39abf1c8ecee0ce6e0c32f0b599882c/gnes-0.0.33-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "2d49e56cd2b1179158c48909d2bc6410", "sha256": "66ae7e3e5c81d3702d5b2f4acf6858601276d969bcc10e700dc6fb95f1612cd1" }, "downloads": -1, "filename": "gnes-0.0.33.tar.gz", "has_sig": false, "md5_digest": "2d49e56cd2b1179158c48909d2bc6410", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 137612, "upload_time": "2019-08-23T10:34:53", "url": "https://files.pythonhosted.org/packages/98/e9/7f0fdc7974dc1e3cb87154aa5cd7a53218cec335a0d0015886fcad8d0fdb/gnes-0.0.33.tar.gz" } ], "0.0.34": [ { "comment_text": "", "digests": { "md5": "2af5845daf4ff4fa8af695b25074e228", "sha256": "e48604e0fc23d12c5a01c61b73e491e673722e5d2d3ade6830ba8432e1f65a69" }, "downloads": -1, "filename": "gnes-0.0.34-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "2af5845daf4ff4fa8af695b25074e228", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 265319, "upload_time": "2019-08-23T11:01:59", "url": "https://files.pythonhosted.org/packages/87/ad/0d34f823643bfef5478bfa24e05962ffbf14ce7522c3f5f6e42e53cfcfdb/gnes-0.0.34-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ab06809249cf2205cae4e983df8ba584", "sha256": "10d3a1dd79c4511dae2b65b2dd24a835e686f5ee70664f3158a327b4e35f235f" }, "downloads": -1, "filename": "gnes-0.0.34.tar.gz", "has_sig": false, "md5_digest": "ab06809249cf2205cae4e983df8ba584", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 137620, "upload_time": "2019-08-23T11:02:03", "url": "https://files.pythonhosted.org/packages/a6/ac/5bda6659e774703b1b04c85f785e6904ffa06789a05ddceaa4dc5fb75cab/gnes-0.0.34.tar.gz" } ], "0.0.35": [ { "comment_text": "", "digests": { "md5": "4ff9b7095f31a360f2eb6dc53eb3dda4", "sha256": "1fc200278512651db9fc8ee2fbb37044f9241c122378a4fb2dcf74bc996b141c" }, "downloads": -1, "filename": "gnes-0.0.35-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "4ff9b7095f31a360f2eb6dc53eb3dda4", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 269083, "upload_time": "2019-08-26T10:15:20", "url": "https://files.pythonhosted.org/packages/8c/a6/dbc4ec0c4d725602b786f09917a5e5150f9110cbaad37315039250ad52a7/gnes-0.0.35-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "26ad84bdfe8317c689f35c9f0a5229ff", "sha256": "eafb60b5f84a59bf9865d89d51420a96c0027769b1f643eff6b22aaade44a100" }, "downloads": -1, "filename": "gnes-0.0.35.tar.gz", "has_sig": false, "md5_digest": "26ad84bdfe8317c689f35c9f0a5229ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 141038, "upload_time": "2019-08-26T10:15:24", "url": "https://files.pythonhosted.org/packages/c8/f3/fd8047c5c3bce7cb94626e46b2e3ff8dde2c5bd677d7cab52889175bc2d7/gnes-0.0.35.tar.gz" } ], "0.0.36": [ { "comment_text": "", "digests": { "md5": "532804b75853f7bffe57ffc8a0853a1b", "sha256": "9199f3d5298b9d009b2e0607d073a4a177ee4a09525402dc1e9e956f393620da" }, "downloads": -1, "filename": "gnes-0.0.36-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "532804b75853f7bffe57ffc8a0853a1b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 272055, "upload_time": "2019-08-30T09:32:43", "url": "https://files.pythonhosted.org/packages/2c/95/12ffce749b61a22e74d69feb290ab87380504ea69e455efca4fce83e869d/gnes-0.0.36-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "e80207df0a77bd7b87cb0103ba9abfb4", "sha256": "f551fba2273ad6afe1d1c015ea931b8d8eb115c00d4a9fcfa938a3f9def317c3" }, "downloads": -1, "filename": "gnes-0.0.36.tar.gz", "has_sig": false, "md5_digest": "e80207df0a77bd7b87cb0103ba9abfb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 144517, "upload_time": "2019-08-30T09:32:47", "url": "https://files.pythonhosted.org/packages/7d/0a/253e669fe07eaf0c48c481d775ff71b432f5903c99ad2bf751b3882d2ceb/gnes-0.0.36.tar.gz" } ], "0.0.37": [ { "comment_text": "", "digests": { "md5": "38d1aabdd9db79036eae217075e1a46b", "sha256": "590eae2f0c491e66d509429b68d129f8562f42c818513ea28b279851ec348480" }, "downloads": -1, "filename": "gnes-0.0.37-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "38d1aabdd9db79036eae217075e1a46b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 308732, "upload_time": "2019-09-06T08:46:34", "url": "https://files.pythonhosted.org/packages/51/48/b6d25d85459a9daed23eea8f0e95a0ebf88b4c5edbddfa5f8d0dc09f8631/gnes-0.0.37-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "e59b3618ff0e2743e11379b7eb88490d", "sha256": "06cdb84259ddd3db1ab085cf5a88ec3c32818a3fc8a3b5fc0b0d5cbbb69b0398" }, "downloads": -1, "filename": "gnes-0.0.37.tar.gz", "has_sig": false, "md5_digest": "e59b3618ff0e2743e11379b7eb88490d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 164370, "upload_time": "2019-09-06T08:46:38", "url": "https://files.pythonhosted.org/packages/33/01/3467177e77c9d4e290cf83d7db449c82221ae76d07d9a8d6c463ec5fb8ba/gnes-0.0.37.tar.gz" } ], "0.0.38": [ { "comment_text": "", "digests": { "md5": "7e23c6a1d1ec0838eb9d7388aba23f18", "sha256": "3460d5ec988d8cd08c33871738f9f62afa243f6230f06ff76697a8be09832c24" }, "downloads": -1, "filename": "gnes-0.0.38-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "7e23c6a1d1ec0838eb9d7388aba23f18", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 308741, "upload_time": "2019-09-06T09:26:04", "url": "https://files.pythonhosted.org/packages/4e/f1/6365ef6aabcad40783218c5f0f79f1e3fb739fab774f7e0620d86b8bb39a/gnes-0.0.38-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "e67c1f27b1937ca3709af3afa2decad8", "sha256": "c8b8c42906701f78c39321d0aa9987fbe09d5ad448f40dfed25704c2db336eaa" }, "downloads": -1, "filename": "gnes-0.0.38.tar.gz", "has_sig": false, "md5_digest": "e67c1f27b1937ca3709af3afa2decad8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 164430, "upload_time": "2019-09-06T09:26:08", "url": "https://files.pythonhosted.org/packages/a8/9d/cdf2df74ff40dc01b5cd03153dfef99b67c1b57c623301ef0dfb1f6b5ff1/gnes-0.0.38.tar.gz" } ], "0.0.39": [ { "comment_text": "", "digests": { "md5": "0b91f0da295cd524ca03687233e280a8", "sha256": "4e87fa4ac492e09bb1c80158d6ffab0bbc37bcf30d0a9b25f3da4032a5532311" }, "downloads": -1, "filename": "gnes-0.0.39-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "0b91f0da295cd524ca03687233e280a8", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 315196, "upload_time": "2019-09-11T09:22:30", "url": "https://files.pythonhosted.org/packages/24/3e/f2008bb3bda350c2c914644dc3df46271e7561de064797220eb9d207026c/gnes-0.0.39-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "16248a708db214c0149c08a20e4c5fda", "sha256": "7ae3d32cba59934c4df198ca95f04b3148f784d6d20f60b6ed0c1885ea520b8a" }, "downloads": -1, "filename": "gnes-0.0.39.tar.gz", "has_sig": false, "md5_digest": "16248a708db214c0149c08a20e4c5fda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 169424, "upload_time": "2019-09-11T09:22:34", "url": "https://files.pythonhosted.org/packages/51/8a/dc0db68d6bbcceb33c8733023f6a585c2b1826dd666808adf22d95ce95de/gnes-0.0.39.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "12eb0aaefd3637770edace98b2c463b2", "sha256": "dd50d5756a0fd8269c7417d2ec354a03fb4461032a21b4f8d9d1da8b621ad380" }, "downloads": -1, "filename": "gnes-0.0.4-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "12eb0aaefd3637770edace98b2c463b2", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 187919, "upload_time": "2019-07-09T02:53:07", "url": "https://files.pythonhosted.org/packages/8e/c3/4e280086cea3e640b75052bec6033a5d88846101d056f87d6e2fa55b8515/gnes-0.0.4-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "b2acd5d1737a074c9e1241c639aae437", "sha256": "03622f9f17c882fa505156c45820cc84e0dc2b7fc7df5f1422ec32a0b29cbd01" }, "downloads": -1, "filename": "gnes-0.0.4.tar.gz", "has_sig": false, "md5_digest": "b2acd5d1737a074c9e1241c639aae437", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69905, "upload_time": "2019-07-09T02:53:10", "url": "https://files.pythonhosted.org/packages/8f/8d/da26a30bb73c96c9a84cd26ceaec91b5b506ff9228196e1106cb0a3d4803/gnes-0.0.4.tar.gz" } ], "0.0.40": [ { "comment_text": "", "digests": { "md5": "fbc7d7e15b3fbcabd86da44c234e42eb", "sha256": "71133823229c1c0bf88829a34ceef1966bfaf4c601c180e507414ed4d72f47de" }, "downloads": -1, "filename": "gnes-0.0.40-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "fbc7d7e15b3fbcabd86da44c234e42eb", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 319194, "upload_time": "2019-09-12T11:54:51", "url": "https://files.pythonhosted.org/packages/11/c6/dd65d469f3bfa17e44ddbb5c033a2f6e8fbe4ede6b696619fe8ebfd46772/gnes-0.0.40-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "990b81447330299110fd0b83b0f4512b", "sha256": "5864e27efef438a086c71f25aacc523f13dbfb6ca2b3892481d86adedcb78443" }, "downloads": -1, "filename": "gnes-0.0.40.tar.gz", "has_sig": false, "md5_digest": "990b81447330299110fd0b83b0f4512b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 173166, "upload_time": "2019-09-12T11:54:55", "url": "https://files.pythonhosted.org/packages/f6/c7/8d241d9ac31d9c70bf4bed61573485b23ef98653c6e15a8c6788d1230233/gnes-0.0.40.tar.gz" } ], "0.0.41": [ { "comment_text": "", "digests": { "md5": "09d7c69ece3af19b7f35e2f49910cc69", "sha256": "3db87fc1adf16b3779a813e0b6f17052f1beef15e0be1ac70a1caca675254a9e" }, "downloads": -1, "filename": "gnes-0.0.41-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "09d7c69ece3af19b7f35e2f49910cc69", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 322884, "upload_time": "2019-09-20T18:52:01", "url": "https://files.pythonhosted.org/packages/fc/95/35f7be83264a43fa51e16193612ecab9ea8dc32e35cd89590b93aea35b2f/gnes-0.0.41-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a0a674b44889b6fcd9b204b0d73e4d4e", "sha256": "426497fcb03b80f65d091b077c8ec358931e320780fe70ff3cc2fac97cca8627" }, "downloads": -1, "filename": "gnes-0.0.41.tar.gz", "has_sig": false, "md5_digest": "a0a674b44889b6fcd9b204b0d73e4d4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 175021, "upload_time": "2019-09-20T18:52:06", "url": "https://files.pythonhosted.org/packages/75/02/bb4be2179b2879048214054165796a2e6534d409e980fcca775753a2dd90/gnes-0.0.41.tar.gz" } ], "0.0.42": [ { "comment_text": "", "digests": { "md5": "07bbb32b522ae29dedafefb6baaa4f8b", "sha256": "1fba847ac1693cbf6648d49ed793f9eda54b523048b3e464c20d5cf89748d336" }, "downloads": -1, "filename": "gnes-0.0.42-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "07bbb32b522ae29dedafefb6baaa4f8b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 331243, "upload_time": "2019-09-26T02:41:11", "url": "https://files.pythonhosted.org/packages/c4/53/fcd2781cf88313bedb7d169a3abbc36b2728b3545dc82975c803144a0553/gnes-0.0.42-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "fba3758bc1cd4e3ec4d5e40534c33bb2", "sha256": "9aba33e56b870dbdd48c07d4a90803649b5021b7c52dec73d1038b4b408509f5" }, "downloads": -1, "filename": "gnes-0.0.42.tar.gz", "has_sig": false, "md5_digest": "fba3758bc1cd4e3ec4d5e40534c33bb2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 179937, "upload_time": "2019-09-26T02:41:16", "url": "https://files.pythonhosted.org/packages/4e/0a/3a7ae760f815c041f837f375984f10ed9d9d646f1701c4ef83e2b9c8e335/gnes-0.0.42.tar.gz" } ], "0.0.43": [ { "comment_text": "", "digests": { "md5": "1ccf2e50a800d9394913d9476139b2bd", "sha256": "c55306287f3e2aa80888e3b1fedf44080802eced5760aaf2592d07eac956105c" }, "downloads": -1, "filename": "gnes-0.0.43-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "1ccf2e50a800d9394913d9476139b2bd", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 332128, "upload_time": "2019-09-30T09:38:18", "url": "https://files.pythonhosted.org/packages/ac/61/42e742a45cdc112b3565473e7a865ba65e242eb4a18585c204976c250d43/gnes-0.0.43-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "9e6409055451c8966572f6bd1efc8005", "sha256": "1bcc545f5978d8b11375a137f64755f7c235cce07ae806e3474d5e8b5b2064a2" }, "downloads": -1, "filename": "gnes-0.0.43.tar.gz", "has_sig": false, "md5_digest": "9e6409055451c8966572f6bd1efc8005", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 181497, "upload_time": "2019-09-30T09:38:22", "url": "https://files.pythonhosted.org/packages/ad/47/e16e86272b2bac5eea2d181931c73cb1778c66f2c26d797a7dfe428834fd/gnes-0.0.43.tar.gz" } ], "0.0.44": [ { "comment_text": "", "digests": { "md5": "b88538deebcffd301acd109e0821ea8a", "sha256": "c1b41117b22af937d37749febf9429ea583852140a69b970537009ca3aea7f67" }, "downloads": -1, "filename": "gnes-0.0.44-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "b88538deebcffd301acd109e0821ea8a", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 341726, "upload_time": "2019-10-11T07:27:57", "url": "https://files.pythonhosted.org/packages/21/f2/2e0f4749cc6c067a43456868a677abd809ee24d3b2cb780c4cd5a21a05d4/gnes-0.0.44-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "83d40d75965f3a6e2ffed524973db829", "sha256": "925c2770381f7e618fc34eacc64f572e72a60d4f45b2629e38b1381e45925d53" }, "downloads": -1, "filename": "gnes-0.0.44.tar.gz", "has_sig": false, "md5_digest": "83d40d75965f3a6e2ffed524973db829", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 189706, "upload_time": "2019-10-11T07:28:01", "url": "https://files.pythonhosted.org/packages/0f/ca/4d4b93ac5eec06c2ce066b33cddb32013dafa01f0c167e075ad9be78f892/gnes-0.0.44.tar.gz" } ], "0.0.45": [ { "comment_text": "", "digests": { "md5": "bffc2c1af13f29990d84e0cfae02a743", "sha256": "e3fa427c118177011d62981e4fb14f24c0a77da4392b84d9ec5cecdb848a474c" }, "downloads": -1, "filename": "gnes-0.0.45-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "bffc2c1af13f29990d84e0cfae02a743", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 348366, "upload_time": "2019-10-15T06:01:27", "url": "https://files.pythonhosted.org/packages/86/45/64ba084c290d118a5c3d00998d01c6b410adbe15bb2fda7df6ffcc5faf17/gnes-0.0.45-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "7ac1ac9ae4945bd14fa7d42b3b0bafaf", "sha256": "d5232b96969fc94c754c6d2281b28b1d3e7540ee944562740e2aafa8efcb43e2" }, "downloads": -1, "filename": "gnes-0.0.45.tar.gz", "has_sig": false, "md5_digest": "7ac1ac9ae4945bd14fa7d42b3b0bafaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 193939, "upload_time": "2019-10-15T06:01:32", "url": "https://files.pythonhosted.org/packages/0a/02/226427054723c88c155de7b2be9c366a07a2774b1ca0af530af389110090/gnes-0.0.45.tar.gz" } ], "0.0.46": [ { "comment_text": "", "digests": { "md5": "ccd93fd008df5ea333c4ffc403586b0b", "sha256": "28a6500c9f3cb7f782c87343793c9e7cee5d0bfd07b004b32e3da86391ffbc9f" }, "downloads": -1, "filename": "gnes-0.0.46-cp36-cp36m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "ccd93fd008df5ea333c4ffc403586b0b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 347437, "upload_time": "2019-10-17T10:16:35", "url": "https://files.pythonhosted.org/packages/f2/c3/f5d01c6b403b55cd1140bfbc3808c4c0c7be5761d9b2706952050baa21e5/gnes-0.0.46-cp36-cp36m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "279e3591856dddc75e66abbe92e13e62", "sha256": "91a2a5f6b055bbccf4a8c989abe5d7a075f202e23481069fd493193931f20b96" }, "downloads": -1, "filename": "gnes-0.0.46.tar.gz", "has_sig": false, "md5_digest": "279e3591856dddc75e66abbe92e13e62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 189480, "upload_time": "2019-10-17T10:16:40", "url": "https://files.pythonhosted.org/packages/9b/cb/1cae3aa0b5372c1f8f32abad4d152d958b9061a81174fd22f8300de07b76/gnes-0.0.46.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "816c4be240c06cf7f59199c2a4af1a8d", "sha256": "b743e04b67bc25eb801cf88b9a54274c1a1f7f0a1304b4c6d2ad47fa54b43e9d" }, "downloads": -1, "filename": "gnes-0.0.5-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "816c4be240c06cf7f59199c2a4af1a8d", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 187945, "upload_time": "2019-07-09T03:04:53", "url": "https://files.pythonhosted.org/packages/7e/4e/a49cf041c9b9cd569296e8b9a98bc5e39d3a0d9022e197b50fb02cfef4b7/gnes-0.0.5-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "23433c27f05f1899ff065654a5aefa86", "sha256": "10259aa8912cf54e249acb35c626409864e1000b1165d8ad3e2959799dbfc395" }, "downloads": -1, "filename": "gnes-0.0.5.tar.gz", "has_sig": false, "md5_digest": "23433c27f05f1899ff065654a5aefa86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69977, "upload_time": "2019-07-09T03:04:56", "url": "https://files.pythonhosted.org/packages/1c/b6/f3e8263b31ac17ba337cb4d0260c597ea41690d2527e7d102210088e0120/gnes-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "c7d0d827e0179bf5cc86e8f8c3461ee8", "sha256": "55025aecdd6bcc556c93f3aee52d12409779b001a8ffdbb0ab36547a46e473e3" }, "downloads": -1, "filename": "gnes-0.0.6-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "c7d0d827e0179bf5cc86e8f8c3461ee8", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 186248, "upload_time": "2019-07-09T04:22:06", "url": "https://files.pythonhosted.org/packages/84/62/2532512045d57697b79b4ad39f9d925698556f2c9801dcc5a27582d4f683/gnes-0.0.6-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "79184b3e0faa8de536c59645b5a27bd2", "sha256": "46ce36687166cdb3391d6c1c124c92df509c20bb876b71e5fb8904605d6f8a79" }, "downloads": -1, "filename": "gnes-0.0.6.tar.gz", "has_sig": false, "md5_digest": "79184b3e0faa8de536c59645b5a27bd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69930, "upload_time": "2019-07-09T04:22:09", "url": "https://files.pythonhosted.org/packages/fe/1d/4ab75622b12d94515c88fe3445a2829f27a9ac0368a7e07ab8bc4db30e5e/gnes-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "cf4a0a7099f661300b6be382dc2141dd", "sha256": "18c6a3f5614986e63725added8431f86d0e33529a11b0b581f01e5a6b745f899" }, "downloads": -1, "filename": "gnes-0.0.7-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "cf4a0a7099f661300b6be382dc2141dd", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 186279, "upload_time": "2019-07-09T05:51:02", "url": "https://files.pythonhosted.org/packages/ed/7d/a248a33ed6b434cc22404947cd1f1883cbeb8fa8c8aa0d45aeb0c3025eb5/gnes-0.0.7-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0589c868e5cd3047fbf82707de841369", "sha256": "526ddbf3f08837b78a8416587b91b41d8c3cbcca39aaccdd8783cd4cf3077792" }, "downloads": -1, "filename": "gnes-0.0.7.tar.gz", "has_sig": false, "md5_digest": "0589c868e5cd3047fbf82707de841369", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69988, "upload_time": "2019-07-09T05:51:06", "url": "https://files.pythonhosted.org/packages/12/6d/199b28aa3959261bfb536b477fa3503392c8d90a20e93920461e025dd886/gnes-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "0f5d648ef2dc2fd75d7c2a3b00dcb51d", "sha256": "73f6f4d7a6e11733353e48a4fcde09630182df8ee72ae2915949387c8d2166fe" }, "downloads": -1, "filename": "gnes-0.0.8-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "0f5d648ef2dc2fd75d7c2a3b00dcb51d", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 186287, "upload_time": "2019-07-09T05:59:54", "url": "https://files.pythonhosted.org/packages/a1/34/e4ca2f43eedb7d08ac4e93b9dd6e9df1f7eead57a4442a7b5d0982b13675/gnes-0.0.8-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "774bc045015d051cb84bbd2cfe896d08", "sha256": "3c8524cf2490e748a1de904db1e4adb3aa03814f6bb0268a6ce0943641ad7539" }, "downloads": -1, "filename": "gnes-0.0.8.tar.gz", "has_sig": false, "md5_digest": "774bc045015d051cb84bbd2cfe896d08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69986, "upload_time": "2019-07-09T05:59:57", "url": "https://files.pythonhosted.org/packages/31/00/f12e89e740fcc2abf76fe594da01f06814f6e5b1be8e70f0b36bd26aad31/gnes-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "fa170fd528c2a578f5bb6b44cc300a25", "sha256": "18aba4dbd9259844dc9504a05922199bd076efe6b8c17ed1e67eb0f8c347041b" }, "downloads": -1, "filename": "gnes-0.0.9-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "fa170fd528c2a578f5bb6b44cc300a25", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 186285, "upload_time": "2019-07-09T06:05:55", "url": "https://files.pythonhosted.org/packages/14/ea/d06deafa1a0546d19f4f09be23d5da732d8bcf9688fdc19812c9851ab7c5/gnes-0.0.9-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "29aefc6056708b75d56c77d6f2b77dc6", "sha256": "ce35bc503a16be23b9bbf4b9ecf012e394e40895fedb47f911add11ddc5464a7" }, "downloads": -1, "filename": "gnes-0.0.9.tar.gz", "has_sig": false, "md5_digest": "29aefc6056708b75d56c77d6f2b77dc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69976, "upload_time": "2019-07-09T06:05:58", "url": "https://files.pythonhosted.org/packages/fe/2e/7072e826f2a791cf3ac2b8fe9776a288010ef0a1da78964e75b6f42795de/gnes-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ccd93fd008df5ea333c4ffc403586b0b", "sha256": "28a6500c9f3cb7f782c87343793c9e7cee5d0bfd07b004b32e3da86391ffbc9f" }, "downloads": -1, "filename": "gnes-0.0.46-cp36-cp36m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "ccd93fd008df5ea333c4ffc403586b0b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 347437, "upload_time": "2019-10-17T10:16:35", "url": "https://files.pythonhosted.org/packages/f2/c3/f5d01c6b403b55cd1140bfbc3808c4c0c7be5761d9b2706952050baa21e5/gnes-0.0.46-cp36-cp36m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "279e3591856dddc75e66abbe92e13e62", "sha256": "91a2a5f6b055bbccf4a8c989abe5d7a075f202e23481069fd493193931f20b96" }, "downloads": -1, "filename": "gnes-0.0.46.tar.gz", "has_sig": false, "md5_digest": "279e3591856dddc75e66abbe92e13e62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 189480, "upload_time": "2019-10-17T10:16:40", "url": "https://files.pythonhosted.org/packages/9b/cb/1cae3aa0b5372c1f8f32abad4d152d958b9061a81174fd22f8300de07b76/gnes-0.0.46.tar.gz" } ] }