Skip to main content

Utils to acquire stuff from pypi and interrogate it

Project description

What's this?

Some tools to get data from pypi and kick it around, for fun and profit.

Minus the profit.

You can do stuff in python, but also have a CLI for most of the stuff.

$ python pipoke/pkg_vs_words.py is-not-a-pkg-name "numpy,exists,but,this_crazy_pkg,does,not"
{'this_crazy_pkg', 'but', 'exists', 'does'}

So 'numpy' and 'not' are already registered with pypi. But hey, the good news is 'but' and 'does' aren't. Inspired to write some code bearing that name?

Cool! How do I install it?

pip install pipoke

Enough said.

Play

from pipoke.pkg_vs_words import all_words, pkg_names
all_words  # set of all English words (according to wordnet)
pkg_names  # set of all PyPi package names. All at the point the list was slurped

You can have your own fun with that. Here are a few things to get you started.

All pkg_names that are valid English words:

from pipoke.pkg_vs_words import all_words, pkg_names
set(all_words).intersection(pkg_names)

All valid English words that are no "taken" by the pypi namespace:

from pipoke.pkg_vs_words import all_words, pkg_names
set(all_words).difference(pkg_names)

All english words, package names, and intersection of both... that end with py:

from pipoke.pkg_vs_words import words_and_pkg_names_satisfying_condition
words_and_pkg_names_satisfying_condition(lambda w: w.endswith('py'), print_counts=True)

All english words, package names, and intersection of both... that contain py or pi:

from pipoke.pkg_vs_words import words_and_pkg_names_satisfying_condition
import pipoke.word_conditions as wc
words_and_pkg_names_satisfying_condition(wc.contains_py_or_pi, print_counts=True)

Want to search with a regular expression? Got you covered. The above search is actually equivalent to:

from pipoke.pkg_vs_words import words_and_pkg_names_satisfying_regex
words_and_pkg_names_satisfying_regex('.*(py|pi).*', print_counts=True)

Get stuff

The repository comes with a data folder that contains a pickle containing a set of words (from wordnet) and a set of pypi package names (well {pkg_name: pkg_url_stub, } to be exact).

But you probably want to update that pypi list from time to time. And you can do so with

from pipoke.pypi_store import refresh_saved_pkg_name_stub
refresh_saved_pkg_name_stub()

Get dict of information for a pkg_name:

from pipoke.pypi_store import info_of_pkg_from_web
pkg_name = 'pipoke'
info_of_pkg_from_web(pkg_name)

And by the way

You have a CLI for many of these things too.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pipoke-0.0.23.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pipoke-0.0.23-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

Details for the file pipoke-0.0.23.tar.gz.

File metadata

  • Download URL: pipoke-0.0.23.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for pipoke-0.0.23.tar.gz
Algorithm Hash digest
SHA256 376e86702c11dfe79ec59462c370c3b0f99816ab9a2aa5aafadeafbe6d3bccc7
MD5 9c63c355f06fbb50511ae6ac1d201bc9
BLAKE2b-256 b00a2a6c19621ab9ee3919d699d9e9e138d5e1548529df5cc56bcd4f1b4bdd2d

See more details on using hashes here.

File details

Details for the file pipoke-0.0.23-py3-none-any.whl.

File metadata

  • Download URL: pipoke-0.0.23-py3-none-any.whl
  • Upload date:
  • Size: 20.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for pipoke-0.0.23-py3-none-any.whl
Algorithm Hash digest
SHA256 93a6e3bdefef359ba22dad3b4bc98ba8db7b2d4c13a7e8b142134a8e73b85a2d
MD5 b05342dcee0c832bdec85c4017437831
BLAKE2b-256 2da01ff5f393f9d5c4696bdc01f4049c5aae15c2704615a6576f2efd89b5b646

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page