{ "info": { "author": "Benjamin Wiegand", "author_email": "highwaychile@posteo.de", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "LINIEN\n======\n\n\n\nSpectroscopy locking of lasers using RedPitaya (STEMlab 125-14) that\njust works. Linien aims to follow the UNIX philosophy of doing one thing\nvery well. It is built with Python and\n[Migen](https://github.com/m-labs/migen) and is based on [RED\nPID](https://github.com/quartiq/redpid).\n\nFeatures\n--------\n\n- **All included**: Sinusoidal modulation (up to 50 MHz), demodulation, filtering\n and servo implemented on the FPGA.\n- **Client-server architecture**: Autonomous operation on RedPitaya.\n One or multiple GUI clients or scripts can connect to the server.\n- **Autolock**: Click and drag over a line, and linien will\n automatically approach it and lock to it.\n- **Lock detection**: linien is capable of detecting loss of lock.\n- **Automatic relocking**: in that case, it can relock automatically\n using the autolock.\n- **Automatic Optimization**: linien uses machine learning to optimize\n spectroscopy parameters\n- **Remote-controllable**: The client libraries can be used to control\n or monitor the spectroscopy lock with python.\n- **Combined FMS+MTS**: Supports dual-channel spectroscopy that can be\n used to implement [combined\n FMS+MTS](https://arxiv.org/pdf/1701.01918.pdf)\n- **Logging**: Use\n [linien-influxdb](https://github.com/hermitdemschoenenleben/linien-influxdb)\n to log the lock status to influxdb.\n- **TTL status**: Outputs the lock status via TTL\n\n![image](https://raw.githubusercontent.com/hermitdemschoenenleben/linien/master/docs/screencast.gif)\n\nGetting started\n---------------\n\nLinien runs on Windows and Linux. For most users the [standalone\nbinaries](#standalone-binary) containing the graphical user interface\nare recommended. If you want to use the python interface you should [install it using pip](#installation-with-pip).\n\n### Standalone binary\n\nYou can download standalone binaries for windows and linux on [the\nreleases\npage](https://github.com/hermitdemschoenenleben/linien/releases). On\nlinux you have to mark it as executable before executing:\n\n```bash\nchmod +x linien-linux*\n./linien-linux*\n```\n\n### Installation with pip\n\nLinien is written for python 3 and can be installed using python\\'s\npackage manager pip:\n\n```bash\npip3 install linien\n```\n\nRun the application by calling\n\n```bash\nlinien\n```\n\nIf this doesn\\'t work, your local bin directory (e.g. \\~/.local/bin) is\nprobably missing in your PATH. Alternatively you can open linien using\npython:\n\n```python\nfrom linien.client.client import run_application\nrun_application()\n```\n\nThen, you can enter your RedPitaya\\'s credentials and connect. If you\nagree, linien\\'s server component is automatically installed.\n\nPhysical setup\n--------------\n\nThe default setup looks like this:\n\n![image](https://raw.githubusercontent.com/hermitdemschoenenleben/linien/master/docs/setup.png)\n\nYou can also configure linien for different setups, e.g. if you want to\nhave the modulation frequency and the control on the same output. Additionally, it is possible to set up a slow integrator on ANALOG OUT 0 (0 V to 1.8 V).\n\n![image](https://raw.githubusercontent.com/hermitdemschoenenleben/linien/master/docs/explain-pins.png)\n\nUsing the application\n---------------------\n\n### Connecting to the RedPitaya\n\nAfter launching the application you have to set up a new device. The host address is given by
rp-XXXXXX.local
, where **XXXXXX** are the last 6 digits of the device's MAC address. You will find them on a sticker on the ethernet port:\n\n![image](https://raw.githubusercontent.com/hermitdemschoenenleben/linien/master/docs/mac.jpg)\n\nDefault value for user name and password is `root`.\n\nWhen connecting to a RedPitaya for the first time, the application will ask you whether you want to install the server component on the device. In order to do so, the RedPitaya has to have access to the internet.\n\nAfter installation of the server libraries, Linien will start the server and connect to it. You never need to start or stop anything on the server manually as the client automatically takes care of this.\n\n### Setting things up\n\n### Using the autolock\n\nIn order to use the autolock, you should enter some PID parameters first. Note that the sign of the parameters is determined automatically. After clicking the green button, you can select the line you want to lock to by clicking and dragging over it. The autolock will then center this line, decrease the scan range and try to lock to the middle between minimum and maximum contained in your selection.\n\n![image](https://raw.githubusercontent.com/hermitdemschoenenleben/linien/master/docs/screencast.gif)\n\nThe following options are available:\n * **Determine signal offset**: If this checkbox is ticked, the autolock will adapt the y-offset of the signal such that the middle between minimum and maximum is at the zero crossing. This is especially useful if you have a large background signal (e.g. the Doppler background in FMS spectroscopy).\n * **Check lock**: Directly after turning on the lock, the control signal is investigated. If it shifts too much, the lock is assumed to have failed.\n * **Watch lock**: This option tells the Linien to continuously watch the control signal when the laser is locked. If steep changes are detected, a relock is initiated.\n\nIf you experience trouble with the autolock, this is most likely due to a bad signal to noise ratio or strong laser jitter.\n\n### Using the manual lock\n\nIf you have problems with the autolock, you can also lock manually. For that, use the manual controls in the top (`Zoom` and `Position`) to center the line you want to lock to. Then, select whether the target slope is rising or falling and click the green button.\n\n### Optimization of spectroscopy parameters using machine learning\n\n### Updating the application\n\n\nScripting interface\n-------------------\n\nIn addition to the GUI, Linien can also be controlled using python\nscripts. For that purpose, installation via pip is required (see above).\n\n```python\nfrom linien.client.connection import BaseClient, MHz, Vpp\nc = BaseClient(host, 18862, False)\n\n# read out the modulation frequency\nprint(c.parameters.modulation_frequency.value / MHz)\n\n# set modulation amplitude\nc.parameters.modulation_amplitude.value = 1 * Vpp\n# in the line above, we set a parameter. This is not written directly to the\n# FPGA, though. In order to do this, we have to call write_data():\nc.connection.root.write_data()\n\n# plot control and error signal\nimport pickle\nfrom matplotlib import pyplot as plt\nplot_data = pickle.loads(c.parameters.to_plot.value)\n\n# depending on the status (locked / unlocked), different signals are available\nprint(plot_data.keys())\n\n# if unlocked, signal1 and signal2 contain the error signal of channel 1 and 2\n# if the laser is locked, they contain error signal and control signal.\nif c.parameters.lock.value:\n plt.plot(plot_data['control_signal'], label='control')\n plt.plot(plot_data['error_signal'], label='error')\nelse:\n plt.plot(plot_data['error_signal_1'], label='error 1')\n plt.plot(plot_data['error_signal_2'], label='error 2')\n\nplt.legend()\nplt.show()\n```\n\nFor a full list of parameters that can be controlled or accessed have a\nlook at\n[parameters.py](https://github.com/hermitdemschoenenleben/linien/blob/master/linien/server/parameters.py).\n\nDevelopment\n-----------\n\nAs linien uses a git submodule, you should check it out like this:\n\n```bash\ngit clone https://github.com/hermitdemschoenenleben/linien.git --recursive\n```\n\nThen, create a file named `checked_out_repo/linien/VERSION` with contents\n\n```\ndev\n```\n(no newlines).\n\nThis ensures that changes you made to the server component are automatically uploaded to the RedPitaya when you launch the client.\n\n### Architecture\n\nLinien contains three components:\n* The client: Connects to the server, runs the GUI, etc.\n* The server: Handles connections from the client, runs long-running tasks like the autolock or the optimization algorithm. Connects to the acquisition process for communication with the FPGA.\n* The acquisition process: Handles the low-level communication with the FPGA (reading / writing registers)\n\nThe communication between the components takes place using [rpyc](https://rpyc.readthedocs.io/en/latest/).\n\nFor development purposes, you can run the first two components on your local machine to simplify debugging. Only the acquisition process has to run on the RedPitaya. In a production version of linien, server and acquisition process run on RedPitaya.\n\n### Running the code\n\nBefore running the development version check that no production version of the server is running on the RedPitaya by executing linien\\_stop\\_server on the RedPitaya. Now you need to have an FPGA bitstream at `linien/server/linien.bin`. You have two choices:\n* [Build the gateware](#building-the-fpga-image): this makes sense if you want to change the FPGA programming.\n* Use the gateware of the latest release: if you just want to work on the python client or server code without touching the FPGA gateware, this approach is right for you as it is way easier:\n * Install linien-server using pip: `pip3 install linien-server`\n * Find out where it was installed to: `python3 -c \"import linien; print(linien.__path__)\"`\n * In that folder go to linien/server and copy this file to your development server folder.\n\nNow you can launch the client\n\n```\npython3 linien/client/client.py\n```\n\nand you can connect to your RedPitaya.\nIf you have set `checked_out_repo/linien/VERSION` to dev ([see above](#development)), this automatically uploads your local code to the RedPitaya and starts the server.\nThe FPGA bitstream will also be transferred to the RedPitaya and loaded on the FPGA.\n\n### Run server locally\n\nFor debugging it may be helpful to execute the server component on\nyour machine (e.g. if you want to work on the autolock and want to plot the spectra). In order to make this work, you have to start `/linien/server/acquisition_process.py` on your RedPitaya using SSH. This process provides remote access to the FPGA registers. Then, you can run the server locally and connect to the FPGA registers:\n\n```\npython3 server/server.py --remote-rp=root:password@rp-f0xxxx.local\n```\n\nNow, you can start the client. **Important**: Be sure not to connect your client to the RedPitaya, but to \"localhost\" instead.\n\n### Fake server\n\nIf you just want to test the GUI, there is also a fake server that you can run locally on your machine:\n\n```bash\npython3 server/server.py --fake\n```\n\nThis fake server just outputs random data. Then you can connect to \\\"localhost\\\" using the client.\n\n### Building the FPGA image\n\nFor building the FPGA image, you need to install Xilinx Vivado first. Then, call `scripts/build\\_gateware.sh`. In the end, the bitstream should be located under `linien/server/linien.bin`.\n# FIXME: Windows?\n\n### Releasing a new version\n\n# FIXME: windows?\nFirst, update the version number in the `checked_out_repo/linien/VERSION` file. Then you can build and upload the package to pypi using scripts/upload\\_pypi.sh. Finally, build the standalone client using build\\_standalone\\_client.sh (you have\nto do this on the platform you want to build the standalone client for).\nThe standalone client should be uploaded to a github release.\n\nTroubleshooting\n---------------\n\n### Connection problems\n\nIf the client fails to connect to a RedPitaya, first check whether you\ncan ping it by executing\n\n```bash\nping rp-f0xxxx.local\n```\n\nin a command line. If this works, check whether you can connect via SSH.\nOn Windows, you have to [install a SSH client](https://www.putty.org),\non linux you can execute\n\n```bash\nssh rp-f0xxxx.local\n```\n\non the command line.\n\nFAQs\n----\n\n### Can I run linien and the RedPitaya web application / scpi interface at the same time\n\nNo, this is not possible as linien relies on a customized FPGA bitstream.\n\n### What control bandwidth is achievable with linien?\n\nThe propagation delay is roughly 300 ns, thus approximately 3 MHz bandwidth are possible.\n\nSee Also\n--------\n\n- [RedPID](https://github.com/quartiq/redpid): the basis of linien\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/hermitdemschoenenleben/linien", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "linien", "package_url": "https://pypi.org/project/linien/", "platform": "", "project_url": "https://pypi.org/project/linien/", "project_urls": { "Homepage": "https://github.com/hermitdemschoenenleben/linien" }, "release_url": "https://pypi.org/project/linien/0.2.1/", "requires_dist": [ "numpy", "scipy", "PyQt5 (>=5.12.2)", "rpyc (>=4.1.0)", "appdirs (>=1.4.3)", "pyqtgraph (>=0.10.0)", "paramiko (>=2.5.0)", "plumbum (>=1.6.7)", "uuid" ], "requires_python": "", "summary": "Spectroscopy lock application using RedPitaya", "version": "0.2.1" }, "last_serial": 5896352, "releases": { "0.0.0.dev0": [ { "comment_text": "", "digests": { "md5": "5771a17b49a92841ff84f92768088849", "sha256": "66bceeb9b0d4c4f843997ca75399fdc5808b54105254b0e3502b46895e3b9692" }, "downloads": -1, "filename": "linien-0.0.0.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "5771a17b49a92841ff84f92768088849", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 104177, "upload_time": "2019-09-27T14:11:34", "url": "https://files.pythonhosted.org/packages/8e/97/d7ad7cf4ae232840cc32884eb7e3539f96dc085a0b6391ea8143c097573d/linien-0.0.0.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4047b7cf4b8914534cc30cc6c5fd777", "sha256": "01c5a5bd5a0a4213655015072b26179322ff4f7ec70bed3dfdfba1423adeb5db" }, "downloads": -1, "filename": "linien-0.0.0.dev0.tar.gz", "has_sig": false, "md5_digest": "a4047b7cf4b8914534cc30cc6c5fd777", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 98403, "upload_time": "2019-09-27T14:11:36", "url": "https://files.pythonhosted.org/packages/12/f3/d2675f1d7ff06ae4ef6dd2e47e480640942422234515b6acd9e9395460eb/linien-0.0.0.dev0.tar.gz" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "5e288af02d3e4f819dadc9449020fc77", "sha256": "9cbdbca036b26acac7290ba67edaee9282c25f02e7ea8c40b971d16c231cbfb6" }, "downloads": -1, "filename": "linien-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5e288af02d3e4f819dadc9449020fc77", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 493815, "upload_time": "2019-06-13T14:36:42", "url": "https://files.pythonhosted.org/packages/2b/4d/7579fde63bc00868093c5f7c3c0642edf0c3957dbde0f4ee8197145456d3/linien-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "803a3b69a4c79b639ef58455cf95d0d5", "sha256": "be8ca95b70392fe919f6f2fa2c92fb7698accf4182c2e20469fc1af065da6f5a" }, "downloads": -1, "filename": "linien-0.0.1.tar.gz", "has_sig": false, "md5_digest": "803a3b69a4c79b639ef58455cf95d0d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 467201, "upload_time": "2019-06-13T14:36:45", "url": "https://files.pythonhosted.org/packages/2f/cc/017dd55746d9980e8532d5e82b31d504e3d7c3d7050ce8cfd3c29aea184b/linien-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "35a66ebddc6f76aaf9795fb491f339b1", "sha256": "2ddd0dfe81a0c4745b4ea5e23576796a04803ef120e545b134dfabb5cafcb25b" }, "downloads": -1, "filename": "linien-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "35a66ebddc6f76aaf9795fb491f339b1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 353711, "upload_time": "2019-06-27T18:34:14", "url": "https://files.pythonhosted.org/packages/0f/31/6812019240bef458560b15c9a312b1e9a1a7da288dc0a18e39f2d7e2d124/linien-0.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63a9cdf0e55338fbf8afd575bf28a23b", "sha256": "8be2fe61104f3725c0dfea9d31adb6294f69a8962ecf2aad83248629865b665e" }, "downloads": -1, "filename": "linien-0.0.10.tar.gz", "has_sig": false, "md5_digest": "63a9cdf0e55338fbf8afd575bf28a23b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 325899, "upload_time": "2019-06-27T18:34:17", "url": "https://files.pythonhosted.org/packages/fa/67/ecd9253bc5860550afe1e6049910fcdc0ae94ce7b57bb91aa9e3d79efc49/linien-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "0ca53220c93375e28fe87fc3e6c1091e", "sha256": "a02b521d4f24015f8c91d72eaab2c8f120ae6b8c06f56a1a371ec8dce9bb48b4" }, "downloads": -1, "filename": "linien-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "0ca53220c93375e28fe87fc3e6c1091e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 50490, "upload_time": "2019-06-27T18:42:49", "url": "https://files.pythonhosted.org/packages/e7/05/1984c088f47db35310414cb9f394d2507cbf1dc781c3f82df7ae0ec68e09/linien-0.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f65442744abb01cab0b4db10faa0ca25", "sha256": "44288591e641370a2b003ead9523fdddebd24a8acb11e2694a410b2003290335" }, "downloads": -1, "filename": "linien-0.0.11.tar.gz", "has_sig": false, "md5_digest": "f65442744abb01cab0b4db10faa0ca25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 334503, "upload_time": "2019-06-27T18:42:51", "url": "https://files.pythonhosted.org/packages/d4/f1/cc979e2472ed89933f424d934647947453f86e74b733862f352df5539b7b/linien-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "254e901470f3fa8fdf7ce6ca16dec7e8", "sha256": "aa63419c4be8518ac7bef06126c4a3f0dd8826b4927537171e7bea225afb91f8" }, "downloads": -1, "filename": "linien-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "254e901470f3fa8fdf7ce6ca16dec7e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 50646, "upload_time": "2019-06-27T18:44:40", "url": "https://files.pythonhosted.org/packages/a3/8b/04cfa705642632fd237a146d1a8c388d8759b2bb9468e27a984837afb738/linien-0.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90797795fdb3242bb75449e377575f2d", "sha256": "12bf43f0be2c9d9a2490848b4badf9d4c0a200b108e12db73ec89589b4f3e281" }, "downloads": -1, "filename": "linien-0.0.12.tar.gz", "has_sig": false, "md5_digest": "90797795fdb3242bb75449e377575f2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 334508, "upload_time": "2019-06-27T18:44:42", "url": "https://files.pythonhosted.org/packages/a4/c8/7547dd5f8bd7cb01a60a534983983af47abe5cb3669147c8135b8f21447f/linien-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "d3d73f1f386eef8d8ba719f5c7a50d7f", "sha256": "bbd7c86854ddfe40abbd5083f52693820ab464c9defee64f1b5f460936f4a3cb" }, "downloads": -1, "filename": "linien-0.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "d3d73f1f386eef8d8ba719f5c7a50d7f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 52733, "upload_time": "2019-07-05T12:26:49", "url": "https://files.pythonhosted.org/packages/32/03/1081c8ff3ed7b032fd28341d7d7bf15fd65f8a506007a8a39caaf3809c1e/linien-0.0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "726888f05b98bb075810ac3df2564013", "sha256": "25e107c0265342683adcb2df18e4489361232d758207df4bf9df1fc804e311dc" }, "downloads": -1, "filename": "linien-0.0.13.tar.gz", "has_sig": false, "md5_digest": "726888f05b98bb075810ac3df2564013", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 350372, "upload_time": "2019-07-05T12:26:52", "url": "https://files.pythonhosted.org/packages/4a/d5/a978817fb11172e01eeca1192e9c59d2a288d5f93d4c21ae01004cb4bc8b/linien-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "130bb0b41b4f0b7b611ccc33d0611929", "sha256": "3622e9299d0399a69b70f958a85cc20621e3a8bb49d19348010373842a71bfd7" }, "downloads": -1, "filename": "linien-0.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "130bb0b41b4f0b7b611ccc33d0611929", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 52736, "upload_time": "2019-07-05T12:34:42", "url": "https://files.pythonhosted.org/packages/14/a3/78d3174171a639c7b006f4e5501e4c2a6ccd14eda016c0d18db62974623b/linien-0.0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84285eca264467da8d91ebec738cbeeb", "sha256": "111a5490dfbcc895637394d794fa7f3a70dfc410946fd87dc07457701fc7c7fb" }, "downloads": -1, "filename": "linien-0.0.14.tar.gz", "has_sig": false, "md5_digest": "84285eca264467da8d91ebec738cbeeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 350364, "upload_time": "2019-07-05T12:34:45", "url": "https://files.pythonhosted.org/packages/51/27/27f1a6e547c14ad9837d07b7792913604327c84896b759bc15214ade3065/linien-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "c35442819f6f8a2711a89ce9671d7c04", "sha256": "984e3f279899ad141951310328e1f8ba5b51abc018cb15fd0b85d270964b00c5" }, "downloads": -1, "filename": "linien-0.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "c35442819f6f8a2711a89ce9671d7c04", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53207, "upload_time": "2019-07-08T09:58:29", "url": "https://files.pythonhosted.org/packages/0c/5b/24fe2f17c9cd141e07bd89195ada572a78923625df4455499d3363ac4a93/linien-0.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59e4bde8db3ee9bacb6816d98287a7f9", "sha256": "11c5d2dd1b0333c2b3f57b12198336ae8cd061e417abfea0be0ab3b35e0a1300" }, "downloads": -1, "filename": "linien-0.0.15.tar.gz", "has_sig": false, "md5_digest": "59e4bde8db3ee9bacb6816d98287a7f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 351562, "upload_time": "2019-07-08T09:58:32", "url": "https://files.pythonhosted.org/packages/29/cc/9cee524f6cb0d516a7475e3ede2a8d9a5ba368aaff51b4aeda94452697d6/linien-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "50ff430222c3ed86308d2952c7dc87f9", "sha256": "1b8c8196f10f921d00bc0f4040fb6180e4c6798f8bf265ee6efb076575325598" }, "downloads": -1, "filename": "linien-0.0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "50ff430222c3ed86308d2952c7dc87f9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53519, "upload_time": "2019-07-08T13:26:06", "url": "https://files.pythonhosted.org/packages/ae/50/8e650a1381940e87f18a3fa29c33baaecb194368f5b4999a60749bcb124b/linien-0.0.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "724b459bbfb42c6b335e0e417d1288ac", "sha256": "5c48cfce3d375216407f69e50ea4c615cc7469d5b08cdc6e8493a159e0c099fd" }, "downloads": -1, "filename": "linien-0.0.16.tar.gz", "has_sig": false, "md5_digest": "724b459bbfb42c6b335e0e417d1288ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 351941, "upload_time": "2019-07-08T13:26:08", "url": "https://files.pythonhosted.org/packages/77/68/35fcd12798d174bd5ae9854de0777be7947f8105b140f43bafedfcf596a1/linien-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "d5ff174dabb613b607df263ecfa66d51", "sha256": "68e14a95e344eea4e4b899fba11e0da316bfdf87ec33a174f509f1bc239ce014" }, "downloads": -1, "filename": "linien-0.0.17-py3-none-any.whl", "has_sig": false, "md5_digest": "d5ff174dabb613b607df263ecfa66d51", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53859, "upload_time": "2019-07-16T11:41:41", "url": "https://files.pythonhosted.org/packages/a1/18/23df5d6e090924b24043560361d5943a49bc3c05d02dbf1bac0e222ce7b6/linien-0.0.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb962ce976198a627048410cffdc41c1", "sha256": "3fb9c8733eae45f5d51860c88a84682e68d370147039fcf2e571328f43ad13bc" }, "downloads": -1, "filename": "linien-0.0.17.tar.gz", "has_sig": false, "md5_digest": "bb962ce976198a627048410cffdc41c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 352132, "upload_time": "2019-07-16T11:41:43", "url": "https://files.pythonhosted.org/packages/18/31/a087622236bfa44693c727039d077866197f7b845f800294a0f42de48cdc/linien-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "c76da2885290eea4ed246bf7908ac9f7", "sha256": "a4df74144b55a8ba604cd935916b7ccf5a3b7596b94ebb8329fd2789de08124f" }, "downloads": -1, "filename": "linien-0.0.18-py3-none-any.whl", "has_sig": false, "md5_digest": "c76da2885290eea4ed246bf7908ac9f7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53852, "upload_time": "2019-07-16T12:04:06", "url": "https://files.pythonhosted.org/packages/82/75/5d9e5a9d0203fd01812d2152783e58b22dd0cc199a764032b88a3d3ee556/linien-0.0.18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92f7c0b226dc96eabfc57e1b30255160", "sha256": "f91d370d516f057d1243152a1c7fb8b9fa624e6a62b3992626a83ea177a6d2c2" }, "downloads": -1, "filename": "linien-0.0.18.tar.gz", "has_sig": false, "md5_digest": "92f7c0b226dc96eabfc57e1b30255160", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 352130, "upload_time": "2019-07-16T12:04:08", "url": "https://files.pythonhosted.org/packages/06/24/4d940be557ad26f164a5076c4687418126cc9a3117d031a3a7dea12aeb46/linien-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "f013b8a8402f83d65381e761596c8043", "sha256": "1ac80ddacbe5da31cc19b67b04fd9573ace05f51bf7ef6cddc87302721cc1aa6" }, "downloads": -1, "filename": "linien-0.0.19-py3-none-any.whl", "has_sig": false, "md5_digest": "f013b8a8402f83d65381e761596c8043", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53853, "upload_time": "2019-07-16T12:30:47", "url": "https://files.pythonhosted.org/packages/a4/11/214e365494759eb4d116779bc55a4ad796033271b2d1f428c43f92b9c731/linien-0.0.19-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "30f6e009d18ac0a716e790cab09b303a", "sha256": "4d349bfa5245f3b2be0b68ec1df66c01d0cce55a1626388f6c0630d276c0df76" }, "downloads": -1, "filename": "linien-0.0.19.tar.gz", "has_sig": false, "md5_digest": "30f6e009d18ac0a716e790cab09b303a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 352138, "upload_time": "2019-07-16T12:30:49", "url": "https://files.pythonhosted.org/packages/da/a2/726ee90ff52a138fe0a6c299db5627f888b65e651fcf1a59849b8519940b/linien-0.0.19.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "49e0cb4391ab12d4ba39d5115dfbb255", "sha256": "aab16ae84b63e4a9cc9d873f27c2917b7d5b1915c554d4b35ce2b367aafdecee" }, "downloads": -1, "filename": "linien-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "49e0cb4391ab12d4ba39d5115dfbb255", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 493867, "upload_time": "2019-06-14T08:28:30", "url": "https://files.pythonhosted.org/packages/59/75/8254325815c5d2fd847c60d94cc790f706f656a16e1a29e4f7928cce6c74/linien-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4f3c8afb7caeab168333b3fa616631f", "sha256": "09fb5853768badc0297d7fc3226a9cd9ee714a4ba617cd2fe65cd97b820e6085" }, "downloads": -1, "filename": "linien-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d4f3c8afb7caeab168333b3fa616631f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 467315, "upload_time": "2019-06-14T08:28:32", "url": "https://files.pythonhosted.org/packages/b3/b4/5f96e8b277cf5fc8bd4e2c8b10cf00eda8125c947335f81acd0a592909c6/linien-0.0.2.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "fcb1b8808fae86defbbdffdd88886cb7", "sha256": "ef55440626d4e1c463076f4b21b3147c0a6989fc293224919f81afd28209b44a" }, "downloads": -1, "filename": "linien-0.0.20-py3-none-any.whl", "has_sig": false, "md5_digest": "fcb1b8808fae86defbbdffdd88886cb7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 56225, "upload_time": "2019-07-29T11:08:07", "url": "https://files.pythonhosted.org/packages/90/12/5ff6a818d9e9a581cf1ec4238b2d972489de43ae3342c0bf675e816acb3f/linien-0.0.20-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a94a69fe6e60ab260b0669f3e86f3e24", "sha256": "2912af308566d51d1e1569c799c7bc0c80078dbdeb3d036d03ed4ea47b962eaa" }, "downloads": -1, "filename": "linien-0.0.20.tar.gz", "has_sig": false, "md5_digest": "a94a69fe6e60ab260b0669f3e86f3e24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 397682, "upload_time": "2019-07-29T11:08:10", "url": "https://files.pythonhosted.org/packages/bf/3a/b43f1f26596f289e972802e0b462a8d75a54a9e4f0ffb3c84289a13e7528/linien-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "6eb50269f1def6b3e36867a49c6f6ba8", "sha256": "0d1ebcd52eadc6a5a7215b2fd04c653c736451a735fa87dd62c9848c34e8fcb6" }, "downloads": -1, "filename": "linien-0.0.21-py3-none-any.whl", "has_sig": false, "md5_digest": "6eb50269f1def6b3e36867a49c6f6ba8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 56422, "upload_time": "2019-07-30T11:18:34", "url": "https://files.pythonhosted.org/packages/4c/55/715e792c55f566daea29fae6c5ef8391f762bac7250513bc8debf0e7e0b8/linien-0.0.21-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1f13629d5bb708247e833bd59eda060", "sha256": "79017166f81e8df6dea7f22d6ec7bdcc273aa71146a27b8f475ed80727489844" }, "downloads": -1, "filename": "linien-0.0.21.tar.gz", "has_sig": false, "md5_digest": "d1f13629d5bb708247e833bd59eda060", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 397932, "upload_time": "2019-07-30T11:18:36", "url": "https://files.pythonhosted.org/packages/9a/ba/8119581179ccb453090b3a47496bef8a3bf814119b48c33e85e990126089/linien-0.0.21.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "a961c22837c6e189d99c3351e8f0064d", "sha256": "c0ef97b75a3d2971b97b1f65086797779ba440105f5bcf95c501387c1dbc00cf" }, "downloads": -1, "filename": "linien-0.0.22-py3-none-any.whl", "has_sig": false, "md5_digest": "a961c22837c6e189d99c3351e8f0064d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 56663, "upload_time": "2019-08-02T10:50:06", "url": "https://files.pythonhosted.org/packages/32/9b/9e1a15f8e635ae0629de3b6c9c4debd9dda84efbed7df4bb0137883aa7ba/linien-0.0.22-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de205982f71fe73c5f37a57df403e9e7", "sha256": "b67253e7bd03896bdcedeb2bacf136f6034ec4b9425be6e0147fb19b8f3401a8" }, "downloads": -1, "filename": "linien-0.0.22.tar.gz", "has_sig": false, "md5_digest": "de205982f71fe73c5f37a57df403e9e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 398896, "upload_time": "2019-08-02T10:50:08", "url": "https://files.pythonhosted.org/packages/d1/51/7b20686068cd8941f532553071d66204d95b9fe2044938daa34812fb2504/linien-0.0.22.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "fb8cc31207d1ba968549ee3196b33632", "sha256": "50ed23631380667c4b82feb7ac14d89fd23777e24433d23afbdd793cc6c662e9" }, "downloads": -1, "filename": "linien-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "fb8cc31207d1ba968549ee3196b33632", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 496063, "upload_time": "2019-06-20T12:44:46", "url": "https://files.pythonhosted.org/packages/c7/be/5948046b29a4b7fa23ee8256a832cf309e66ea79000b3f50c1284cac1e5c/linien-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c90787dafe25805f7bffbd768a84e502", "sha256": "0436236609ce62ead812f01235cc377ab90b91383800b2dffcf4d2f0eeb68eeb" }, "downloads": -1, "filename": "linien-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c90787dafe25805f7bffbd768a84e502", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 468837, "upload_time": "2019-06-20T12:44:48", "url": "https://files.pythonhosted.org/packages/ee/fd/5e2e6148d14acaf0a2fbd0180e08f8fa53df20dcb6281f0afc284ce5e737/linien-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "dceda5e10ada3f0fec190ff868675843", "sha256": "bc7d01a5701d586b628710d08eebb8d4930943c9b6b008f9f01c6cae8c45968a" }, "downloads": -1, "filename": "linien-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "dceda5e10ada3f0fec190ff868675843", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 496122, "upload_time": "2019-06-20T12:58:32", "url": "https://files.pythonhosted.org/packages/fb/01/a04f0913fa7dd64aa24d4645ea05891e351ca691ff90d37bce1ea3bdf338/linien-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08dc4987b930eb0682b29c54f433ac35", "sha256": "26b71a08a3c213dc1c7144f4313a7aba74cda22d1133bb537231e1216e1332bf" }, "downloads": -1, "filename": "linien-0.0.4.tar.gz", "has_sig": false, "md5_digest": "08dc4987b930eb0682b29c54f433ac35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 468936, "upload_time": "2019-06-20T12:58:34", "url": "https://files.pythonhosted.org/packages/f9/7c/9fee820fbe545c1907743ec1459f4e7ca42897c1bea222b339eaeea7484f/linien-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "1174411f2419f30923c7a541eb6d599d", "sha256": "3882ab4a70005ba7681f25244c11c49ecaa47f74e78bbfb6049c8384f217db95" }, "downloads": -1, "filename": "linien-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "1174411f2419f30923c7a541eb6d599d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 497617, "upload_time": "2019-06-20T16:41:01", "url": "https://files.pythonhosted.org/packages/bc/4a/89c58e94136b3cae38c16e508692441479d2e8061327b8e34d633c2823fe/linien-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59262f32e996a98efeb2842b1872c97c", "sha256": "9e37cf31163bfe43d600b7f7e401eaff4038e67d72107d184e534ccf7443e5bf" }, "downloads": -1, "filename": "linien-0.0.5.tar.gz", "has_sig": false, "md5_digest": "59262f32e996a98efeb2842b1872c97c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 469908, "upload_time": "2019-06-20T16:41:03", "url": "https://files.pythonhosted.org/packages/3a/90/75d46fe747051f40dbe80916f3f0e9fc3e21f6c6c6f8c80e2da55faffca1/linien-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "017650ce9bda658e279a12a3bd29b66f", "sha256": "c5794f3a26dee0e175b96b8904557f5dadabc8222a4d4f4e2a4e0acc65b47bac" }, "downloads": -1, "filename": "linien-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "017650ce9bda658e279a12a3bd29b66f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 470847, "upload_time": "2019-06-21T12:04:45", "url": "https://files.pythonhosted.org/packages/23/65/441cad16a1fe2591a682696740a757efe399e454eca9384a68aa855e1b01/linien-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3bc656ed89fe2ddcde0f0d47dc29083b", "sha256": "13a17131f4713d89f03b4504665fe7fcb6ac1f7e520f97e17b6cee4ed63febe0" }, "downloads": -1, "filename": "linien-0.0.6.tar.gz", "has_sig": false, "md5_digest": "3bc656ed89fe2ddcde0f0d47dc29083b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 442833, "upload_time": "2019-06-21T12:04:47", "url": "https://files.pythonhosted.org/packages/e6/c8/644a8716a721719e5f95612c957edfe8d61f2a1411d3f801f3f396f89634/linien-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "9a50625c811dbc354bfef72ecd6213a5", "sha256": "9dc6a2865278b82db364e9ac0f8edfe8adbd4f755f798a0ad4cbc57ca919f425" }, "downloads": -1, "filename": "linien-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "9a50625c811dbc354bfef72ecd6213a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 360699, "upload_time": "2019-06-21T17:27:14", "url": "https://files.pythonhosted.org/packages/6c/45/b5724eaa9ea155cd5c64e34ebe33965ae6a7c9ecde42bc53b67aba07c41a/linien-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "91e0beff5f407d594fe73613d74c4ebd", "sha256": "01f77d3b3b5db46faa485d4b0d5557962ea319fc3c43bf3b00d34f4a29cf5b50" }, "downloads": -1, "filename": "linien-0.0.7.tar.gz", "has_sig": false, "md5_digest": "91e0beff5f407d594fe73613d74c4ebd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 331040, "upload_time": "2019-06-21T17:27:16", "url": "https://files.pythonhosted.org/packages/79/e2/f60a72e45a8a4664077c7c931ab108b1736e1fb3c4312e5c77b42fc36386/linien-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "a9b99e665dbaedf8a77bb29a0e54c249", "sha256": "f708777bcff6927daf0a0c178fc197e3e4ebca65305b5c92021bc9d40c8aeed3" }, "downloads": -1, "filename": "linien-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "a9b99e665dbaedf8a77bb29a0e54c249", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 360700, "upload_time": "2019-06-21T17:33:49", "url": "https://files.pythonhosted.org/packages/73/d1/e2088e40e8f1dcb2eb1fa9bba3fdc9ce4ed158f6d929ce876416fb1f9170/linien-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fca40bbad668aaede098472cc99d3fe4", "sha256": "e891361def9cf39060f2ef75430a127c516dc34655cfd81ca42c85e4b11937f7" }, "downloads": -1, "filename": "linien-0.0.8.tar.gz", "has_sig": false, "md5_digest": "fca40bbad668aaede098472cc99d3fe4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 331043, "upload_time": "2019-06-21T17:33:52", "url": "https://files.pythonhosted.org/packages/51/36/72813cdc65d548a8a06a1b3f297e48d317e28b95b2e21eca69bd71dd18da/linien-0.0.8.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "b6e4deb5e01d7540740c986bd4146c43", "sha256": "271ffce659fb4ac2dbcbc765b2b4fb9f6f81ff718ae9c18db99f08107335d556" }, "downloads": -1, "filename": "linien-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b6e4deb5e01d7540740c986bd4146c43", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 65003, "upload_time": "2019-09-16T17:23:46", "url": "https://files.pythonhosted.org/packages/8b/b3/52a4c8377b08bca9b9c8d972509e1c50c18de63f59485899eade50eb3068/linien-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0060c3a34f019c2434f269b6f77619c", "sha256": "b7927bc9078bb3266283fdcc794b1e31bccd5fcbd7c3581629a49025dd1f47f6" }, "downloads": -1, "filename": "linien-0.1.2.tar.gz", "has_sig": false, "md5_digest": "e0060c3a34f019c2434f269b6f77619c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 404155, "upload_time": "2019-09-16T17:23:49", "url": "https://files.pythonhosted.org/packages/55/38/68648fb507e6382587454af003de581f5b5249e2f80f320ff27141d89062/linien-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f2f5ed50ab4c71a78e89d64efc6e0418", "sha256": "2cad15f9a40fa8c21de1b3e518b092dc1820c28d036f3f54dffa8814ac6ac98b" }, "downloads": -1, "filename": "linien-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f2f5ed50ab4c71a78e89d64efc6e0418", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 109937, "upload_time": "2019-09-23T10:57:25", "url": "https://files.pythonhosted.org/packages/45/7f/1ef3c6dd5d47eb7beb23509e68b1023e213818803cbb192283506e308809/linien-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea90435c183376d2c424e6d53cdb076a", "sha256": "39ce1517b84f6d68df4ad975c4830b60f9b62b8132c08e0168fe6d64db2bdb49" }, "downloads": -1, "filename": "linien-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ea90435c183376d2c424e6d53cdb076a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104626, "upload_time": "2019-09-23T10:57:27", "url": "https://files.pythonhosted.org/packages/03/8c/3ae9b07738da6c232b8ae8e4125924d6271b35a126cece56ee44d8317ea9/linien-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "48c8fe486ad0cb0913b8ee291d09312f", "sha256": "1ad5393720d7b45967bca8f70460423c361488a456afcf8c4ae428e7d1aa73ba" }, "downloads": -1, "filename": "linien-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "48c8fe486ad0cb0913b8ee291d09312f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 110785, "upload_time": "2019-09-26T08:12:57", "url": "https://files.pythonhosted.org/packages/2b/29/597ac932bfc5af7a469a6b440c53a0f44efeca03780daebf96c4493aee74/linien-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d74c44dafe0cc6151ae71982ebd1fda2", "sha256": "966a0a571f54fb5494a9de606f51bfb19d0c1f2ff32df02eeab4b79d495a313e" }, "downloads": -1, "filename": "linien-0.1.4.tar.gz", "has_sig": false, "md5_digest": "d74c44dafe0cc6151ae71982ebd1fda2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 106160, "upload_time": "2019-09-26T08:12:59", "url": "https://files.pythonhosted.org/packages/8a/59/06fea47d18ee7cef06020156660763daa1dc634bc78142af4fcbb083b3a7/linien-0.1.4.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "3bad05f67fc62af5f46f76d2ca5de924", "sha256": "43b7fbd1d481036e4dff7ba1d96a6b591153e02742ac2e7dadc62219a848f6a6" }, "downloads": -1, "filename": "linien-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3bad05f67fc62af5f46f76d2ca5de924", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 104108, "upload_time": "2019-09-27T14:12:35", "url": "https://files.pythonhosted.org/packages/18/36/236ffe5241aeef3f606ff883191532c189d4be813165596e4ea2a79b2e81/linien-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "daa71bd6ec4a1dcb89d997430cebfd87", "sha256": "47fd96dca0d9f3906155b997de7b6b127b38b0d96b9d13526a782ffb8c91ff8b" }, "downloads": -1, "filename": "linien-0.2.1.tar.gz", "has_sig": false, "md5_digest": "daa71bd6ec4a1dcb89d997430cebfd87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 98410, "upload_time": "2019-09-27T14:12:38", "url": "https://files.pythonhosted.org/packages/2b/6a/80eb55935f4ecfde505dcc925c0303a4d58a4ead371685e49bb257dbfd6a/linien-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3bad05f67fc62af5f46f76d2ca5de924", "sha256": "43b7fbd1d481036e4dff7ba1d96a6b591153e02742ac2e7dadc62219a848f6a6" }, "downloads": -1, "filename": "linien-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3bad05f67fc62af5f46f76d2ca5de924", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 104108, "upload_time": "2019-09-27T14:12:35", "url": "https://files.pythonhosted.org/packages/18/36/236ffe5241aeef3f606ff883191532c189d4be813165596e4ea2a79b2e81/linien-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "daa71bd6ec4a1dcb89d997430cebfd87", "sha256": "47fd96dca0d9f3906155b997de7b6b127b38b0d96b9d13526a782ffb8c91ff8b" }, "downloads": -1, "filename": "linien-0.2.1.tar.gz", "has_sig": false, "md5_digest": "daa71bd6ec4a1dcb89d997430cebfd87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 98410, "upload_time": "2019-09-27T14:12:38", "url": "https://files.pythonhosted.org/packages/2b/6a/80eb55935f4ecfde505dcc925c0303a4d58a4ead371685e49bb257dbfd6a/linien-0.2.1.tar.gz" } ] }