{ "info": { "author": "Israel G. Lugo", "author_email": "israel.lugo@lugosys.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Education", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "Intended Audience :: Telecommunications Industry", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: Microsoft :: Windows", "Operating System :: OS Independent", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Communications", "Topic :: Documentation", "Topic :: Education", "Topic :: Internet", "Topic :: System :: Networking", "Topic :: System :: Networking :: Firewalls", "Topic :: System :: Systems Administration", "Topic :: Utilities" ], "description": "NetCalc\r\n=======\r\n\r\n|license| |PyPi version| |PyPi pyversion| |Codacy Badge|\r\n\r\nAdvanced network calculator and address planning helper.\r\n\r\nNetCalc is a tool made by network admins, for network admins. It supports\r\nadding (aggregating) networks, subtracting a network from a larger network,\r\ndoing addition and subtraction of multiple networks at once, and more\r\nfunctionality is to come in future releases.\r\n\r\nNetCalc supports both IPv4 and IPv6, and works very efficiently even with very\r\nlarge networks. It uses the excellent netaddr_ library for the core address\r\nmanipulation.\r\n\r\nThis program requires either Python 3 (recommended) or Python 2.\r\n\r\n.. contents::\r\n\r\n\r\nUsage\r\n-----\r\n\r\nUsing NetCalc is quite simple. All functionality is split into commands, each\r\nof which receive their own set of specific arguments.\r\n\r\nadd command\r\n...........\r\n\r\nAdd networks, aggregating as much as possible. ::\r\n\r\n $ netcalc add 198.18.0.0/24 198.18.1.0/24 10.1/16 10/16\r\n 10.0.0.0/15\r\n 198.18.0.0/23\r\n\r\nThis command can be very useful e.g. for calculating a minimal set of prefixes\r\nto announce with BGP.\r\n\r\nAnother real-life example would be comparing the routing tables from two\r\nseparate routers (each with prefixes broken up in different ways), to see if\r\nthey are equivalent (both cover the same networks). If the aggregate from one\r\nrouter matches the aggregate from the other, then they are indeed equivalent.\r\n\r\nadd-file command\r\n................\r\n\r\nAdd networks from a file, aggregating as much as possible.\r\n\r\nThis is a variant of the ``add`` command above, which reads the networks from a\r\nfile (one per line). For example, given the following file:\r\n\r\nnetworks.txt\r\n ::\r\n\r\n 198.18.0.0/24\r\n 198.18.1.0/24\r\n 10.1/16\r\n 10/16\r\n\r\nThese networks could be added like so::\r\n\r\n $ netcalc add-file networks.txt\r\n 10.0.0.0/15\r\n 198.18.0.0/23\r\n\r\nsub command\r\n...........\r\n\r\nSubtract a network from another, splitting as necessary. ::\r\n\r\n $ netcalc sub 192.0.2.0/24 192.0.2.0/28\r\n 192.0.2.16/28\r\n 192.0.2.32/27\r\n 192.0.2.64/26\r\n 192.0.2.128/25\r\n\r\nsplit command\r\n.............\r\n\r\nSplit a network into subnets of a certain length. ::\r\n\r\n $ netcalc split 198.18.64.0/18 20\r\n 198.18.64.0/20\r\n 198.18.80.0/20\r\n 198.18.96.0/20\r\n 198.18.112.0/20\r\n\r\nIt is also possible to do a hierarchical split, showing all the steps from a\r\ncertain length to a specified maximum length::\r\n\r\n $ netcalc split 198.18.64.0/18 19 21\r\n 198.18.64.0/19\r\n 198.18.64.0/20\r\n 198.18.64.0/21\r\n 198.18.72.0/21\r\n 198.18.80.0/20\r\n 198.18.80.0/21\r\n 198.18.88.0/21\r\n 198.18.96.0/19\r\n 198.18.96.0/20\r\n 198.18.96.0/21\r\n 198.18.104.0/21\r\n 198.18.112.0/20\r\n 198.18.112.0/21\r\n 198.18.120.0/21\r\n\r\nexpr command\r\n............\r\n\r\nAdd and subtract networks using an arbitrarily long mathematical expression. ::\r\n\r\n $ netcalc expr 2001:db8::/34 - 2001:db8::/38 + 2001:db8:100::/41\r\n 2001:db8:100::/41\r\n 2001:db8:400::/38\r\n 2001:db8:800::/37\r\n 2001:db8:1000::/36\r\n 2001:db8:2000::/35\r\n\r\ninfo command\r\n............\r\n\r\nProvide static information about a network. Shows the network address, netmask,\r\nfirst and last addresses, and so on. ::\r\n\r\n $ netcalc info 2001:db8::8000:0:0:a:5/56\r\n Compact address - 2001:db8:0:8000::a:5\r\n Expanded address - 2001:0db8:0000:8000:0000:0000:000a:0005\r\n Address type - Global Unicast\r\n Network address - 2001:db8:0:8000::/56\r\n Network mask - ffff:ffff:ffff:ff00:0:0:0:0\r\n Prefix length - 56\r\n Host wildcard - 0:0:0:ff:ffff:ffff:ffff:ffff\r\n Broadcast address - N/A\r\n Address count - 4722366482869645213696\r\n First address - 2001:0db8:0000:8000:0000:0000:0000:0000\r\n Last address - 2001:0db8:0000:80ff:ffff:ffff:ffff:ffff\r\n\r\n\r\nExpanding arguments from a text file\r\n....................................\r\n\r\nIt is possible to expand command-line arguments from a text file, for any\r\ncommand, by referencing the filename with a ``@`` placeholder. The file's\r\ncontents will be read and inserted as though they had been typed at the\r\ncommand-line. Each line of text will turn into a separate command line\r\nargument.\r\n\r\nArgument expansion is useful for commands which don't already support receiving\r\na filename from which to read their arguments. Using this, it is possible for\r\nexample to calculate an arbitrarily long expression with the ``expr`` command.\r\n\r\nFor example, given the following file:\r\n\r\n/tmp/math-arguments.txt\r\n ::\r\n\r\n 2001:db8::/34\r\n -\r\n 2001:db8::/38\r\n +\r\n 2001:db8:100::/41\r\n\r\nThis expression could be calculated like so::\r\n\r\n $ netcalc expr @/tmp/math-arguments.txt\r\n 2001:db8:100::/41\r\n 2001:db8:400::/38\r\n 2001:db8:800::/37\r\n 2001:db8:1000::/36\r\n 2001:db8:2000::/35\r\n\r\nIt is even possible (albeit perhaps farfetched) to specify the actual command\r\nwithin the argument file:\r\n\r\n/tmp/arguments.txt\r\n ::\r\n\r\n sub\r\n 10.0.0.0/24\r\n 10.0.0.64/27\r\n\r\nWhich would yield::\r\n\r\n $ netcalc @arguments.txt\r\n 10.0.0.0/26\r\n 10.0.0.96/27\r\n 10.0.0.128/25\r\n\r\nOf course, it would also be possible to use argument expansion to read networks\r\nfrom a file as arguments into the ``add`` command. However, this would be rather\r\nredundant, as it is equivalent to just using the ``add-file`` command,\r\nexemplified above.\r\n\r\nGiven the file:\r\n\r\nnetworks.txt\r\n ::\r\n\r\n 198.18.0.0/24\r\n 198.18.1.0/24\r\n 10.1/16\r\n 10/16\r\n\r\nThese networks could be added like so::\r\n\r\n $ netcalc add @networks.txt\r\n 10.0.0.0/15\r\n 198.18.0.0/23\r\n\r\n\r\nInstalling\r\n----------\r\n\r\nUsing pip\r\n.........\r\n\r\nThe easiest, portable, way to install NetCalc is through the official\r\n`Python Package Index`_, using a package manager such as pip_::\r\n\r\n $ sudo pip install netcalc\r\n\r\nThis will install NetCalc globally, and take care of installing all necessary\r\ndependencies first.\r\n\r\nIt is also possible to install only to the local user's environment, without\r\nchanging the global system::\r\n\r\n $ pip install --user netcalc\r\n\r\nThis will install NetCalc in the user's environment, which can be e.g. in\r\n``~/.local`` in GNU/Linux, UNIX and Mac OSX, or ``%APPDATA%\\Python`` in\r\nWindows. You will need to run ``netcalc`` from within the user environment: on\r\nGNU/Linux for example, this will be ``~/.local/bin/netcalc``.\r\n\r\nFrom the operating system's package manager\r\n...........................................\r\n\r\nThere are packages available for Debian Jessie (.deb), which should also work\r\nfor Ubuntu Linux:\r\n\r\n- python-netcalc_ (for Python 2)\r\n- python3-netcalc_ (for Python 3)\r\n\r\nA package for Gentoo Linux (ebuild) is also planned for future releases.\r\n\r\n.. TODO: Self-host the packages. Don't rely on Github for everything.\r\n\r\n\r\nFrom source\r\n...........\r\n\r\nNetCalc can also be run directly from the source directory, as long as the\r\nrequirements are already installed.\r\n\r\nThe only requirement is netaddr_. On a Debian or Ubuntu system, install the\r\n``python3-netaddr`` package (for Python 3), or ``python-netaddr`` (for Python\r\n2). On a Gentoo system, install ``dev-python/netaddr``.\r\n\r\nTo run from source, just execute ``./netcalc.py`` from within the root of the\r\nsource directory::\r\n\r\n $ cd netcalc\r\n $ ./netcalc.py add 10.0.0.24/29 10.0.0.16/29\r\n 10.0.0.16/28\r\n\r\n\r\nFuture plans\r\n------------\r\n\r\nFuture plans for NetCalc include, in no particular order:\r\n\r\n- new command for static information (netmask/bitmask, IP range)\r\n- new command for WHOIS queries\r\n- make expr command more generic, allow e.g. splitting subnets\r\n- ability to read networks from file in different formats (CSV, etc.)\r\n- create packages for common GNU/Linux distributions, and installer for Windows\r\n- ???\r\n\r\nSuggestions are quite welcome :)\r\n\r\n\r\nContact\r\n-------\r\n\r\nNetCalc is developed by Israel G. Lugo . Main\r\nrepository for cloning, submitting issues and/or forking is at\r\nhttps://github.com/israel-lugo/netcalc\r\n\r\n\r\nLicense\r\n-------\r\n\r\nCopyright (C) 2016, 2017 Israel G. Lugo \r\n\r\nNetCalc is free software: you can redistribute it and/or modify\r\nit under the terms of the GNU General Public License as published by\r\nthe Free Software Foundation, either version 3 of the License, or\r\n(at your option) any later version.\r\n\r\nNetCalc is distributed in the hope that it will be useful,\r\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\r\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\nGNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License\r\nalong with NetCalc. If not, see .\r\n\r\n\r\n.. |license| image:: https://img.shields.io/badge/license-GPLv3+-blue.svg?maxAge=2592000\r\n :target: LICENSE\r\n.. |PyPi version| image:: https://img.shields.io/pypi/v/netcalc.svg\r\n :target: https://pypi.python.org/pypi/netcalc\r\n.. |PyPi pyversion| image:: https://img.shields.io/pypi/pyversions/netcalc.svg?maxAge=86400\r\n.. |Codacy Badge| image:: https://api.codacy.com/project/badge/Grade/4479f8bd8ddd4ba58c09867bf97133cd\r\n :target: https://www.codacy.com/app/israel-lugo/netcalc\r\n.. _netaddr: https://github.com/drkjam/netaddr\r\n.. _Python Package Index: https://pypi.python.org/pypi/netcalc/\r\n.. _pip: https://pip.pypa.io/en/stable/\r\n.. _python-netcalc: https://github.com/israel-lugo/netcalc/releases/download/v0.6.2/python-netcalc_0.6.2-1_all.deb\r\n.. _python3-netcalc: https://github.com/israel-lugo/netcalc/releases/download/v0.6.2/python3-netcalc_0.6.2-1_all.deb", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/israel-lugo/netcalc", "keywords": "", "license": "GPLv3+", "maintainer": "", "maintainer_email": "", "name": "netcalc", "package_url": "https://pypi.org/project/netcalc/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/netcalc/", "project_urls": { "Homepage": "https://github.com/israel-lugo/netcalc" }, "release_url": "https://pypi.org/project/netcalc/0.6.2/", "requires_dist": [ "netaddr (>=0.7.12)" ], "requires_python": "", "summary": "Advanced network calculator and address planning helper", "version": "0.6.2" }, "last_serial": 2865328, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f55470712420eaf98bf7e08bbe98965e", "sha256": "46ad256598d0a217a24d5dfe9376f841f9e331e632f88dfc24cf16e27a9ee29e" }, "downloads": -1, "filename": "netcalc-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f55470712420eaf98bf7e08bbe98965e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11649, "upload_time": "2016-11-01T20:19:28", "url": "https://files.pythonhosted.org/packages/a0/5d/eadc4c0e23b3c48c1d37fb98a1bca1efed4e7a553d41bd285129834d6e82/netcalc-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80cc71efd1678285269ce2cfd7d886f3", "sha256": "590d9500d1f51aefd95c1e8de634448c6ebcfc313d47db12adf9dbf600aaca0c" }, "downloads": -1, "filename": "netcalc-0.1.0.tar.gz", "has_sig": true, "md5_digest": "80cc71efd1678285269ce2cfd7d886f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7555, "upload_time": "2016-11-01T20:19:31", "url": "https://files.pythonhosted.org/packages/46/2d/3d519ccb6ad448c0bb9ed9b805f61c023add42513cbc6ca5773cd44e7cdd/netcalc-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ae182ee4a08bdb6feb99baab3b7fd99e", "sha256": "dd0cd42fd7b54854375def9c47d4f7fad8c8172112b15d284be78885c3c468dc" }, "downloads": -1, "filename": "netcalc-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "ae182ee4a08bdb6feb99baab3b7fd99e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12347, "upload_time": "2016-11-06T23:02:13", "url": "https://files.pythonhosted.org/packages/e6/67/97564fe0b909eacb9f8cd91c083ead3a92c509d3e0a78246668b3935e0e2/netcalc-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8deff43d647a8d28ee7c419b860fc91b", "sha256": "bfca9e4f3e4ca898ef1de0c0fd32029d806c4d1fe19743b50796ce22beb1767b" }, "downloads": -1, "filename": "netcalc-0.2.0.tar.gz", "has_sig": true, "md5_digest": "8deff43d647a8d28ee7c419b860fc91b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8415, "upload_time": "2016-11-06T23:02:15", "url": "https://files.pythonhosted.org/packages/4e/31/03deddef12c9d3b9f33f442136438c637b70cd4ae0471aeb33c1576bd0b7/netcalc-0.2.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "6dd800dab346b4acc65482e7dd6c2b7d", "sha256": "ce1e953d1fba9cbe2c911cb7ee092e6878c5cf85ae1a551027637ca31ef80d2b" }, "downloads": -1, "filename": "netcalc-0.3.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "6dd800dab346b4acc65482e7dd6c2b7d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13905, "upload_time": "2016-11-13T22:14:17", "url": "https://files.pythonhosted.org/packages/2d/55/c72804c45253ea652441ad3beab8ca0026963ba0b2151c8d6c3bee29fa93/netcalc-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a311f077e789ab038071a3672b82de36", "sha256": "893abcccb9b917c2e0321ca290c26bdd51c83e62724bcf84868ccedc08ee8e81" }, "downloads": -1, "filename": "netcalc-0.3.1.tar.gz", "has_sig": true, "md5_digest": "a311f077e789ab038071a3672b82de36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9719, "upload_time": "2016-11-13T22:14:19", "url": "https://files.pythonhosted.org/packages/33/f5/63547ece16302ffedb50b70a1ae47d530e370f5c42dc21f67e5c4b98c12b/netcalc-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "94b6ba0294151a365ff2b391923f3611", "sha256": "dcd9614b92818df89099140f6e7fad5ea487c26aa61903e47e33353aca3a1947" }, "downloads": -1, "filename": "netcalc-0.4.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "94b6ba0294151a365ff2b391923f3611", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15603, "upload_time": "2016-11-18T02:30:14", "url": "https://files.pythonhosted.org/packages/86/c9/85aac0bc23543eb66379b3f113b0db8b08ca12e339f9a195e9f88bbc2888/netcalc-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4232dc3e3a392ce8ca07e2440d8bcc6", "sha256": "1dd25a2e12f933c267d2fef34f43687ccfb7ff8449f05de807f753edc4ef7402" }, "downloads": -1, "filename": "netcalc-0.4.0.tar.gz", "has_sig": true, "md5_digest": "c4232dc3e3a392ce8ca07e2440d8bcc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12511, "upload_time": "2016-11-18T02:30:17", "url": "https://files.pythonhosted.org/packages/00/42/264574c294587e9e7d56e0dc13c53052f467c97239265b7cbcbd9736b73d/netcalc-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "998d21fd7eece9eb9dddf024a0bc8858", "sha256": "856505415a027bcd50ad9b76c1a93914497eec5debe205bef427c17c411fd158" }, "downloads": -1, "filename": "netcalc-0.5.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "998d21fd7eece9eb9dddf024a0bc8858", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16282, "upload_time": "2017-01-15T19:07:48", "url": "https://files.pythonhosted.org/packages/8a/33/e364e7447add0f8ced4e9454b6737510525014c043f4c821f7beee9fc661/netcalc-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90524c9247d45da65c9d9eca52d7cb4c", "sha256": "68b1d07a4ebe239d2b0400e4eff54876ec4d6f3722b1829aca242095ff70c6c7" }, "downloads": -1, "filename": "netcalc-0.5.0.tar.gz", "has_sig": true, "md5_digest": "90524c9247d45da65c9d9eca52d7cb4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13280, "upload_time": "2017-01-15T19:07:50", "url": "https://files.pythonhosted.org/packages/9b/2b/c79a188e0d75f793b70b154c912bc02b0ddcc1ed8207d9ad3c4a88d009bd/netcalc-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "9af0d7538535eb2a76add3a5af8078b3", "sha256": "ea7b28379e514f2a0470dd460863231c2c40019924086acb272184745cee4a7f" }, "downloads": -1, "filename": "netcalc-0.6.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "9af0d7538535eb2a76add3a5af8078b3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17323, "upload_time": "2017-02-05T21:34:23", "url": "https://files.pythonhosted.org/packages/ea/bc/3d39f1b853f26c6653466f0b5bf92c19a809be0b051337a798d4b7e88fbd/netcalc-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a69d421f73306defd9aba222868f735d", "sha256": "d7e460dd00260a0a9c0f4956867191ab04cddb2486f94dda6e838211471f8140" }, "downloads": -1, "filename": "netcalc-0.6.0.tar.gz", "has_sig": true, "md5_digest": "a69d421f73306defd9aba222868f735d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14372, "upload_time": "2017-02-05T21:34:25", "url": "https://files.pythonhosted.org/packages/01/da/29ae90c7fd39d45608dc63957f8d14f47e3c5d974d560d6a4fa5f16ac158/netcalc-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "4d6224fa9ab7a1070748bfea0be4d75c", "sha256": "1f66dd982e4ca32fa4bb368b0d5d0f37622701077eb29b6be03a6ea4759a9be4" }, "downloads": -1, "filename": "netcalc-0.6.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4d6224fa9ab7a1070748bfea0be4d75c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17326, "upload_time": "2017-02-07T05:45:09", "url": "https://files.pythonhosted.org/packages/4f/35/62a64e8377319ad8b8e11139825e2c35427a5c394e1a4b1c542885cde21f/netcalc-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "020312dea69a6e6f14e17b826f60ec28", "sha256": "fe252ca4178d0742ff2e6128d06713b1d7aeed2c136f0a690c4f06539b43650d" }, "downloads": -1, "filename": "netcalc-0.6.1.tar.gz", "has_sig": true, "md5_digest": "020312dea69a6e6f14e17b826f60ec28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14466, "upload_time": "2017-02-07T05:45:12", "url": "https://files.pythonhosted.org/packages/ea/fb/cce26d21dd8ee6170fe1fe00907237ab38fb1ba24f1510fc55fa1936432d/netcalc-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "7df35611f50e587f8920f2d635eadcf0", "sha256": "1a5adcb5da0596f9d1001f31bb97c62306bafede8c71d27f2a0a97aade7deec7" }, "downloads": -1, "filename": "netcalc-0.6.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7df35611f50e587f8920f2d635eadcf0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17715, "upload_time": "2017-05-10T20:26:50", "url": "https://files.pythonhosted.org/packages/d5/33/a9decb3888d74e5e5b243f2b3432c9caf5a55a7d85a51532e477ca26305c/netcalc-0.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d346d367ac842d8e6894231fc2eebc8", "sha256": "e15c4fb91d92cf926c83e2394ae9986282cbbf8edf8a1225826dbe6118653f82" }, "downloads": -1, "filename": "netcalc-0.6.2.tar.gz", "has_sig": true, "md5_digest": "9d346d367ac842d8e6894231fc2eebc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14914, "upload_time": "2017-05-10T20:26:51", "url": "https://files.pythonhosted.org/packages/86/08/d6a15560d530f3392c31ae9fdfcf1868e963265bc9c638be6c7034ca46bf/netcalc-0.6.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7df35611f50e587f8920f2d635eadcf0", "sha256": "1a5adcb5da0596f9d1001f31bb97c62306bafede8c71d27f2a0a97aade7deec7" }, "downloads": -1, "filename": "netcalc-0.6.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7df35611f50e587f8920f2d635eadcf0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17715, "upload_time": "2017-05-10T20:26:50", "url": "https://files.pythonhosted.org/packages/d5/33/a9decb3888d74e5e5b243f2b3432c9caf5a55a7d85a51532e477ca26305c/netcalc-0.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d346d367ac842d8e6894231fc2eebc8", "sha256": "e15c4fb91d92cf926c83e2394ae9986282cbbf8edf8a1225826dbe6118653f82" }, "downloads": -1, "filename": "netcalc-0.6.2.tar.gz", "has_sig": true, "md5_digest": "9d346d367ac842d8e6894231fc2eebc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14914, "upload_time": "2017-05-10T20:26:51", "url": "https://files.pythonhosted.org/packages/86/08/d6a15560d530f3392c31ae9fdfcf1868e963265bc9c638be6c7034ca46bf/netcalc-0.6.2.tar.gz" } ] }