Skip to main content

Library to spot a keyword as a function inside python stdlib

Project description

pylibfinder (supports Python 3.10 to 3.14 on POSIX)

  • pylibfinder is a Python library that allows you to spot a keyword as a python object inside the Python standard library.

  • It provides a convenient way to search for objects that match a given keyword within the standard library modules.

  • With pylibfinder, you can easily identify the modules and objects that are available in Python and gain insights into their usage and availability.

  • This library is designed to assist developers in finding relevant objects and understanding the Python standard library better.

https://img.shields.io/pypi/v/pylibfinder CI Tests https://img.shields.io/pypi/pyversions/pylibfinder.svg https://img.shields.io/pypi/wheel/pylibfinder.svg https://img.shields.io/badge/C%20Extension-yes-brightgreen.svg https://img.shields.io/badge/platform-macOS-blue.svg https://img.shields.io/badge/platform-Linux-blue.svg https://img.shields.io/badge/License-MIT-blue.svg https://pepy.tech/badge/pylibfinder

Installation

For stable version

  • pip install pylibfinder

For development

Recommended (Easy setup):

  • git clone https://github.com/Agent-Hellboy/pylibfinder

  • cd pylibfinder

  • pip install -e . (installs in editable mode with proper Python headers detection)

  • make changes to src/pylibfinder.c

  • reinstall with pip install -e . to rebuild

  • open repl and test

Manual compilation:

macOS:

  • Install Homebrew Python: brew install python@3.13

  • Find Python include path: python3.13 -c "import sysconfig; print(sysconfig.get_path('include'))"

  • Compile: gcc -shared -o pylibfinder.so -fPIC -I /opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13 src/pylibfinder.c src/module_scanner.c -lpython3.13

  • It will generate pylibfinder.so

  • Test in Python REPL: python3.13 -c "import pylibfinder; print(pylibfinder.find_similar('power'))

Linux:

  • Install Python dev package: sudo apt-get install python3.13-dev

  • Compile: gcc -shared -o pylibfinder.so -fPIC -I /usr/include/python3.13 src/pylibfinder.c src/module_scanner.c

  • It will generate pylibfinder.so

  • Test in Python REPL: python3.13 -c "import pylibfinder; print(pylibfinder.find_similar('power'))

Example

Semantic similarity search - Find similar functions:

>>> import pylibfinder
>>>
>>> # Search for 'power' to find math functions (default threshold 0.5)
>>> pylibfinder.find_similar('power')
[{'Module': 'builtins', 'Function': 'pow', 'Similarity': 0.6}, ...]
>>>
>>> # Search for 'print' with custom threshold
>>> result = pylibfinder.find_similar('print', 0.5)
>>> result[0]
{'Module': 'builtins', 'Function': 'print', 'Similarity': 1.0}
>>>
>>> # Find functions similar to 'parseInt' (Java function) with higher threshold
>>> pylibfinder.find_similar('parseInt', 0.6)
[{'Module': 're._parser', 'Function': '_parse_sub', 'Similarity': 0.6}]
>>>
>>> # Include private APIs (functions starting with _) in search results
>>> pylibfinder.find_similar('parse', 0.5, include_private=True)
[{'Module': 'builtins', 'Function': 'compile', 'Similarity': 0.5}, {'Module': 're._parser', 'Function': '_parse_sub', 'Similarity': 0.8}, ...]
>>>

Terminal User Interface (TUI)

Interactive Search with Beautiful UI:

pylibfinder TUI Demo

To use the interactive terminal interface, install with the TUI extra:

pip install pylibfinder[tui]

Then launch the interactive TUI:

pylibfinder-tui

Features:

  • Beautiful Interactive Interface - Built with Textual for a modern TUI experience

  • Keyboard Navigation - Smooth and responsive controls

  • Color-Coded Results - Visual indicators for match quality:

    • Green: Excellent match (90%+)

    • Cyan: Good match (70%+)

    • Yellow: Fair match (50%+)

    • Red: Low match (<50%)

  • Progress Bars - Visual representation of similarity scores

  • Real-time Search - Search directly in the TUI interface

Usage:

  1. Start the TUI: pylibfinder-tui

  2. Type your keyword in the search box (e.g., power, print, parseInt)

  3. Every keyword event sends request to the backend

  4. View results in the formatted table

  5. Press Ctrl+L to clear results or Ctrl+C to exit

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

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

pylibfinder-0.2.4.tar.gz (9.4 kB view details)

Uploaded Source

Built Distributions

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

pylibfinder-0.2.4-cp314-cp314t-musllinux_1_2_x86_64.whl (29.7 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pylibfinder-0.2.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (30.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pylibfinder-0.2.4-cp314-cp314t-macosx_11_0_arm64.whl (12.3 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

pylibfinder-0.2.4-cp314-cp314-musllinux_1_2_x86_64.whl (27.0 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pylibfinder-0.2.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (28.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pylibfinder-0.2.4-cp314-cp314-macosx_11_0_arm64.whl (12.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pylibfinder-0.2.4-cp313-cp313-musllinux_1_2_x86_64.whl (27.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pylibfinder-0.2.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (28.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pylibfinder-0.2.4-cp313-cp313-macosx_11_0_arm64.whl (12.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pylibfinder-0.2.4-cp312-cp312-musllinux_1_2_x86_64.whl (27.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pylibfinder-0.2.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (27.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pylibfinder-0.2.4-cp312-cp312-macosx_11_0_arm64.whl (12.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pylibfinder-0.2.4-cp311-cp311-musllinux_1_2_x86_64.whl (26.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pylibfinder-0.2.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (26.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pylibfinder-0.2.4-cp311-cp311-macosx_11_0_arm64.whl (12.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pylibfinder-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl (25.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pylibfinder-0.2.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (26.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pylibfinder-0.2.4-cp310-cp310-macosx_11_0_arm64.whl (12.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file pylibfinder-0.2.4.tar.gz.

File metadata

  • Download URL: pylibfinder-0.2.4.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.24

File hashes

Hashes for pylibfinder-0.2.4.tar.gz
Algorithm Hash digest
SHA256 e153609a92d7a97aacbf3d7b56e64a136c2d6728872337abc53837ddde410491
MD5 8ec8e15e024be12b944c4244fea0e410
BLAKE2b-256 7cfb99a43bd0fa1a44490d3ebab7574097b8c44b98d07f2d1530feeafbf3d7a8

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b82715f92290017817c8ee625cc45580b8b8a95514c141fc1eb8594ce8d9cc86
MD5 07a88b5fc6c9139b8b4d031e0806f4e2
BLAKE2b-256 2d15155e3b0d6230b7dab4c112693568401094abf1e18c1db7077b2b2dfd9d1e

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 de3d1aea3461f9f6cf3cf8d5736f8405fdf16f7ec1281b139281a83b2a6031e8
MD5 cc4b0caadb8c2c792ff51d6773d66ed6
BLAKE2b-256 631aa25bac5ad84fd36b7241303d59d4bb479b526c1ed75cf62b81b39db68254

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 58222ed04d10148bcafe82f43b5237db9e0ec96dbd2bf83da04b8bc64d752a43
MD5 253f7b1884d23b9d0e81b1a571e3137d
BLAKE2b-256 19dedcfbdf8fac35821d8f41fea8c3e3fee2ce247b710a528f4dbc0e7d42d27b

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a84a449ef83f92f901a1ffa13d8891f515cbf74a856e67d51439a1414397630f
MD5 84abdc9620b83b8c59f13bcad047c546
BLAKE2b-256 00354b80bdd2b23c27d60b8555ecc3936e752a8eb880bbfa28f6b6a318fd564b

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 3d991957b16b0e74600803a99f7b831438f5fb8f9dd50697947504c78ba828a4
MD5 7e5a37ad1f662cc6c956e2b7750261d7
BLAKE2b-256 995ac46e17267076696b8a126b9b65465c7f4cbe1dc266db8d65923edc9daed4

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79f4fa2d8baab887bc47d3e89fc9a42819b5686657bd1fbd19f5c97601c49bf3
MD5 f812d37e09a4b1324430e5e58aa680e5
BLAKE2b-256 9874789b0f053559708d3e9c1a6bb48e59aed151cbe510eb21797f016a457cfb

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 90cadb9472ab4921a9601c8d8f4191e2468cde8f568238dbc99184d33329d219
MD5 ed0793c779043a95e2e9df557e2f40e9
BLAKE2b-256 4a23dc075bcb2f4b612df24d117e67c4d82e0cef257b1c5c2698aa7541a7ecf6

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 fde618a0cf0e5519cd95a22b20e67c61dde33b5f7e1e0edd9e041d701233868c
MD5 dcf402e079c6749d4b552d38199caf8b
BLAKE2b-256 756d7660c461873b3c6cb65b03e5c6aa775f7b9b3f52ba3b3c4bc09d7254263f

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 838f9e262981427a93737a6b712ff5a29f635ff577b9f1fe1b7659c8af1fe8ab
MD5 e344ed71bce8466e07ad0f4d8acbc69b
BLAKE2b-256 f2e4f2cca365a2cb963dd8fe8d7995e1c6d438f8c029ba88365ecc829b70c451

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1ad2a77e146c492aa92d76f516abacfe2e7de1d087dd8f803c66851f6c0ac410
MD5 a0063b167b58e6cde3fa4dd6fc10ef79
BLAKE2b-256 056c610604df55a9097842dff4c03ba1d4588c51b0c478776edc083286667bdc

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 132335f562a731c6f9859d913071d0f52f01f9384fcc7451ae970f1ea5bdf3e8
MD5 8668305c62b6ca4fe79b1703698dcdff
BLAKE2b-256 df442c8f1a5c385cfc193cfb2cec3a948636863d8ac12d67618c887a116a200e

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db5d4e948bddd706c48046980f95b2937e51f093781296a593ef991eb19779c4
MD5 03b3a623a9d5bd54fa59df761d431178
BLAKE2b-256 afd8a4c1d9dda1c3740b531a1afff836d3a16cc76d1f632252e0074bc60a0dda

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2f38b12846ee77aad588c309253ae4db07867d26ff3e0217c91903cb85457bfb
MD5 fb31c8b5bcdd662ccaf53ccefdea5114
BLAKE2b-256 f4ab84fd4888b406b40e78d3abc0bf9a883832800dc388b96cf08d27d4d26fdd

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 3f575cf3437e467d6ef2a7bfce67c90d2f7aa4e63d02d55da6889ab670210819
MD5 0160f38910bb0967a3161f3deda2f1d7
BLAKE2b-256 a169001fd07c8da617fbb6213bf5fd04c671b6044ef0c0316f56b2f461e8eaf0

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb2c09517ac9c11669e275304dee3362e24959042c16093fa3f10ec41103efb8
MD5 2d02e6423f71ccb0fa8134f0dc31208d
BLAKE2b-256 6454dcf7e7c5606c405bba150c8452d13e4d19dc65fc23bf7ebe2b3763c5acd7

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a732bdec744ee70e9be14b748747bd8788e1c2ceb00f66107eecebfde7219c4f
MD5 b992baa52f86cc1e650dd5f07177c6f7
BLAKE2b-256 52f843a75dcb0418e86b1a118ebc6b2c8e4311e4cab19659aa04f03bbcf62029

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 59e34eefb68dc4d61237959a94ac668b854ea4da1b3c29ea353e789d6ad653be
MD5 31e5637c6f2a607619021f5067c7e086
BLAKE2b-256 863d426839e127c74794b504f341e4a9b419602dff65fa83d87d1f852c8d88df

See more details on using hashes here.

File details

Details for the file pylibfinder-0.2.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pylibfinder-0.2.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd8d576e5a32639883a488c31ae2fd67a344d69c1676af941fe50fb323f0fc65
MD5 fb791da2604a5eb1c426740489bab5d3
BLAKE2b-256 5fda65f1617abe2da03d49a07b10163a8da598f564da0ffe2c1c750815dccc1d

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