Skip to main content

Multithreaded concurrent da.gd URL shortener with in-memory cache

Project description

dagdshort

dagdshort is a Python based multithreaded URL shortener with a memory-cache. It uses the da.gd service.

As a disclaimer, this is an unofficial package and it has no association with da.gd. If you use this package extensively, making a financial donation to da.gd is encouraged.

Other operations are outside the scope of this package.

cicd badge

Links

Caption Link
Repo https://github.com/impredicative/dagdshort/
Changelog https://github.com/impredicative/dagdshort/releases
Package https://pypi.org/project/dagdshort/

Requirements

Python

Python ≥3.9 is required. An older version of Python will not work.

Usage

To install the package, run:

$ pip install dagdshort

Usage example:

>>> import dagdshort

# Setup
>>> shortener = dagdshort.Shortener(user_agent_suffix='<YourGitUsername>/<YourGitRepoName>', max_cache_size=256)

# Shorten
>>> long_urls = ['https://github.com/impredicative/dagdshort/', 'https://pypi.org/project/dagdshort/']
>>> shortener.shorten_urls(long_urls)
{'https://github.com/impredicative/dagdshort/': 'https://da.gd/W9s06',
 'https://pypi.org/project/dagdshort/': 'https://da.gd/KtGTB'}

# Show cache info
>>> shortener.cache_info
{'Shortener._shorten_url': CacheInfo(hits=0, misses=2, maxsize=256, currsize=2)}

To obtain the fastest response, URLs must be shortened together in a batch as in the examples above. Up to 8 concurrent workers are automatically used. The max limit can, if really necessary, be changed by setting config.MAX_WORKERS before initializing the shortener.

Errors

If a "Blacklisted long URL" error is experienced for a reasonable website which should not be blacklisted, it can be reported here. As an example, see this issue.

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

dagdshort-0.1.3.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

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

dagdshort-0.1.3-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file dagdshort-0.1.3.tar.gz.

File metadata

  • Download URL: dagdshort-0.1.3.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for dagdshort-0.1.3.tar.gz
Algorithm Hash digest
SHA256 fd947c0464bf494bf23aa59022dc31c761ab9dfdea250d53e47e364a62ce0bdb
MD5 7514e7da271e5c37df8a9b430c84d018
BLAKE2b-256 80ca47cd99f1e3a5f9b1bdf3e6500b5ffb3bd4d9fc135749868a64cc5bdb686d

See more details on using hashes here.

File details

Details for the file dagdshort-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: dagdshort-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 18.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for dagdshort-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d9fb6dd52be66e5039af462b2fee4fce89d4ea2c2a4b4df519cf14284a179f26
MD5 437e805bda314516af355b2991427ccf
BLAKE2b-256 df6cc0cc4dcb0de5690d6ac7086bfa3f757c4485d35469c06b6ba1431247f6ca

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