Skip to main content

An asynchronous Python client for interacting with the X API.

Project description

Xify

PyPI PyPI - Python Version License

Xify is a Python client for interacting with the X (formerly Twitter) API. This library provides an asynchronous interface to perform common tasks like creating tweets as well as providing authentication and custom error handling.


Features

  • Send Tweets: Contains functionality to send tweets.
  • OAuth 1.0a Authentication: Sign and authenticate requests to the X API.
  • Async HTTP Requests: Uses aiohttp for efficient, non-blocking network operations.
  • Developer Experience: Includes ruff, mypy, pre-commit, and commitizen for high-quality code.

Installation

From PyPI (Recommended)

pip install xify

From Source

You can install Xify by cloning the repository directly or using pre-built wheel files.

Prerequisites: This project requires uv for dependency management.

Option 1: Clone and Build

  1. Clone the repository:

    git clone https://github.com/filming/xify.git
    cd xify
    
  2. Install the project and its dependencies:

    uv sync
    

Option 2: Install from Pre-built Wheels

Pre-built wheel files are attached to each GitHub release. You can download and install them directly:

  1. Go to the GitHub releases page
  2. Download the .whl file from the latest release
  3. Install using pip:
    pip install path/to/downloaded/xify-*.whl
    

Usage

Here's a basic example of how to use Xify to send out a tweet:

import asyncio
from xify import Xify

async def main():
   x_consumer_key = "1111111111"
   x_consumer_secret = "2222222222"
   x_access_token = "3333333333"
   x_access_token_secret = "4444444444"

   async with Xify(
      x_consumer_key=x_consumer_key,
      x_consumer_secret=x_consumer_secret,
      x_access_token=x_access_token,
      x_access_token_secret=x_access_token_secret,
    ) as client:
      response = await client.tweet({"msg": "hello!"})

if __name__ == "__main__":
   asyncio.run(main())

Development

This project uses modern Python development tools:

Setting up for development:

  1. Clone the repository:

    git clone https://github.com/filming/xify.git
    cd xify
    
  2. Install dependencies (including dev tools):

    uv sync --extra dev
    
  3. Set up pre-commit hooks:

    uv run pre-commit install
    
  4. Start developing!


Dependencies

All project dependencies are managed via pyproject.toml and use Python 3.10+.


License

This project is licensed under the MIT License - see the LICENSE file for details.


Contributing

Contributions, bug reports, and feature requests are welcome! Please open an issue or submit a pull request on GitHub.

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

xify-2.1.1.tar.gz (103.3 kB view details)

Uploaded Source

Built Distribution

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

xify-2.1.1-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file xify-2.1.1.tar.gz.

File metadata

  • Download URL: xify-2.1.1.tar.gz
  • Upload date:
  • Size: 103.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for xify-2.1.1.tar.gz
Algorithm Hash digest
SHA256 ab6842ba991df630bc845939a880645a65800e6648ed943fb8335b68d69b289f
MD5 41c72ed6bd59a9deca615c437ba288ac
BLAKE2b-256 bee67758a4c1b450a09e7bfdc85bbe1041b7c65a339334593332e084cddee6de

See more details on using hashes here.

Provenance

The following attestation bundles were made for xify-2.1.1.tar.gz:

Publisher: release.yml on filming/xify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xify-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: xify-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for xify-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1d389d23586c6365971e0b84e4d90ea52f81d22dd421103d0de66774fb2e33bf
MD5 27034dfe3c2229f192452356a988e17c
BLAKE2b-256 5d2ecb79862e0bca8f720f43dc154d1f02f0e3e555b0dca253982e4e2db0ef4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for xify-2.1.1-py3-none-any.whl:

Publisher: release.yml on filming/xify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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