sdk-for-python icon indicating copy to clipboard operation
sdk-for-python copied to clipboard

🚀 Feature: use linting tools (pre-commit)

Open Ananya2001-an opened this issue 2 years ago • 9 comments

🔖 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?

  • [X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

Ananya2001-an avatar Jun 09 '23 09:06 Ananya2001-an

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?

Ananya2001-an avatar Jun 10 '23 10:06 Ananya2001-an

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

jayanth-kumar-morem avatar Jun 16 '23 22:06 jayanth-kumar-morem

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

Ananya2001-an avatar Jun 17 '23 03:06 Ananya2001-an

Okay, Alright, should I draft a PR then ?

jayanth-kumar-morem avatar Jun 17 '23 15:06 jayanth-kumar-morem

You should wait for someone to approve this first

Ananya2001-an avatar Jun 17 '23 16:06 Ananya2001-an

Oh, Alright @Ananya2001-an

jayanth-kumar-morem avatar Jun 17 '23 16:06 jayanth-kumar-morem

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.

joeyouss avatar Jun 20 '23 11:06 joeyouss

Sure @joeyouss :)

Ananya2001-an avatar Jun 20 '23 12:06 Ananya2001-an

Is this still open? will attach pre-commit hooks

vaishnavi-2901 avatar Jun 28 '24 20:06 vaishnavi-2901