Skip to content
/ xify Public

Xify is a Python client for interacting with the X API.

License

Notifications You must be signed in to change notification settings

filming/xify

Repository files navigation

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.

About

Xify is a Python client for interacting with the X API.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages