appwrite / sdk-for-python

[READ-ONLY] Official Appwrite Python SDK 🐍
https://appwrite.io
BSD 3-Clause "New" or "Revised" License
214 stars 58 forks source link

🚀 Feature: use linting tools (pre-commit) #60

Open Ananya2001-an opened 1 year ago

Ananya2001-an commented 1 year ago

🔖 Feature description

I think we can use famous linting tools like black, flake8 and isort to keep the code style consistent and maybe we can use pre-commit hook to make sure the format is correct before making any unnecessary commits.

In some files like here: https://github.com/appwrite/sdk-for-python/blob/df2780464278185e9965134787dde5c92d163c37/appwrite/client.py#L1 we have unused imports like io in this case which can be easily detected using something like this. We can use husky as well....

We can also later on add a ci workflow to make sure lint tests pass. wdyt?

🎤 Pitch

We can use pre-commit as a dev dependency and create a .pre-commit-config.yaml file in the root dir like this:

repos:
- repo: https://github.com/psf/black
  rev: 23.3.0
  hooks:
    - id: black
      language_version: python3
      args: [appwrite]
- repo: https://github.com/pycqa/flake8
  rev: 5.0.4
  hooks:
    - id: flake8
      args:
        - "--max-line-length=120"
- repo: https://github.com/pycqa/isort
  rev: 5.11.5
  hooks:
    - id: isort
      name: isort (python)
      args: [--filter-files]

👀 Have you spent some time to check if this issue has been raised before?

🏢 Have you read the Code of Conduct?

Ananya2001-an commented 1 year ago

I wonder if there is a common formatting being followed in sdk-generator for all SDKs using composer that's why we are not implementing something like this separately?

jayanth-kumar-morem commented 1 year ago

I'm interested in implementing this feature. I agree that using linting tools like black, flake8, and isort can significantly improve the consistency of our code style. The pre-commit hook idea is also excellent as it can prevent unnecessary commits with incorrect formatting.

I have experience working with these tools. Can someone please assign this task to me?

CC: @eldadfux @TorstenDittmann @christyjacob4

Ananya2001-an commented 1 year ago

Hey @jayanth-kumar-morem it's great that u want to contribute but just a suggestion that please don't tag the maintainers directly for getting assigned to some issue

jayanth-kumar-morem commented 1 year ago

Okay, Alright, should I draft a PR then ?

Ananya2001-an commented 1 year ago

You should wait for someone to approve this first

jayanth-kumar-morem commented 1 year ago

Oh, Alright @Ananya2001-an

joeyouss commented 1 year ago

Thank you for opening this @Ananya2001-an - our SDKs are actually generated via https://github.com/appwrite/sdk-generator so it is an important consideration about where to add it, how to add it, automating it, etc so a deeper look at this is required. I will be looking into this and letting you know what the decision is.

Ananya2001-an commented 1 year ago

Sure @joeyouss :)

vaishnavi-2901 commented 2 days ago

Is this still open? will attach pre-commit hooks