Trending Python Projects of the week
Tags: python, webdev, programming, opensource
Published: 2021-12-30 21:30:24

I wanted to make a compilation of some of the nicest Python projects that have gained popularity on GitHub this week.

## SQLModel
As his creator defined, SQLModel is a Python library for interacting with SQL databases. It is based on Python type hints, and it uses [Pydantic](https://pydantic-docs.helpmanual.io/ "Pydantic") and [SQLAlchemy](https://www.sqlalchemy.org/ "SQLAlchemy") internally. We can argue that SQLModel is just a layer on top of Pydantic and SQLAlchemy.

SQLModel was created by the same person who created [FastAPI](https://fastapi.tiangolo.com/ "FastAPI"), so you can expect a pleasant and flawless integration between both.

Although SQLModel was launched no more than 4 months ago (at the time of writing this), it already offers many features, and some others are already being developed, I encourage you to give it a try.

- [Github Repository](https://github.com/tiangolo/sqlmodel "SQLModel Github")
- [Documentation](https://sqlmodel.tiangolo.com/ "SQLModel Docs")

## Python Fire

Python Fire is a library designed by Google for automatically generating command-line interfaces (CLIs) from absolutely any Python object, so basically you can create a Python method and generate a CLI from it.

Here are some examples,

```python
import fire

def greeting(name="World"):
  return "Hello %s!" % name

if __name__ == '__main__':
  fire.Fire(greeting)
```

 After import `fire`, we can use it to generate a CLI from `greeting` in this case.

```python
python greeting.py  # Hello World!
python greeting.py --name=Juan  # Hello Juan!
python greeting.py --help  # Shows usage information.
```

I think this library is really helpful for debugging, developing some Python scripts.

- [Github Repository](https://github.com/google/python-fire "Python Fire Github")
- [Documentation](https://github.com/google/python-fire/blob/master/docs/using-cli.md "Python Fire Docs")

If you like to play with CLIs, you should try [Typer](https://github.com/tiangolo/typer "Typer"), another great tool for building CLIs with Python.

## Sherlock

This is simple, a Python script for searching usernames across several social networks, how cool is that huh?

I tried with my username and there are some sites that I don’t know about, I should look into that…

![sherlock](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lkxdvpr6qt44l8fvcobb.png)

- [Github Repository](https://github.com/sherlock-project/sherlock "Sherlock Github")

## changedetection.io

This is a tool for monitoring websites and get notifications when they change, so if you want to be on top of new information on the sites you like the most, give it a try. 

Some use cases for this:
- Governmental department updates (changes are often only on their websites)
- Products and services have a change in pricing
- New software releases, security advisories when you're not on their mailing list.
- Festivals with changes
- Real estate listing changes
- COVID-19 related news from government websites

The best part about changedetection is that it is open source and you can self-host it.

- [Github Repository](https://github.com/dgtlmoon/changedetection.io "changedetection Github")


I hope you like this list and leave a comment if you have used some of these tools or if you know about other Python projects gaining popularity.

You can follow me on [Twitter](https://www.twitter.com/juanbenitezdev) and [GitHub](https://www.github.com/juanbenitezdev) to be up to date with all my projects and content.