diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index 521effb..0000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Lint -on: - - push - - pull_request -jobs: - test: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - python-version: ["3.10"] - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install mypy flake8 - - name: Lint with mypy - run: mypy FOSSDB_web - - name: Lint with flake8 - run: flake8 FOSSDB_web diff --git a/.github/workflows/ruff.yml b/.github/workflows/ruff.yml new file mode 100644 index 0000000..563b87d --- /dev/null +++ b/.github/workflows/ruff.yml @@ -0,0 +1,8 @@ +name: Ruff +on: [push, pull_request] +jobs: + ruff: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: chartboost/ruff-action@v1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 88ecea3..264e1d4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,23 +1,18 @@ -name: Test -on: - - push - - pull_request +name: Django Test +on: [push, pull_request] jobs: test: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - python-version: ["3.10"] + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + - name: Checkout code + uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup_python@v2 with: - python-version: ${{ matrix.python-version }} + python-version: "3.10" - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - - name: Test with django test + - name: Run tests run: python manage.py test diff --git a/FOSSDB/apps/fossdb/models.py b/FOSSDB/apps/fossdb/models.py index 53d1bd0..5f19875 100644 --- a/FOSSDB/apps/fossdb/models.py +++ b/FOSSDB/apps/fossdb/models.py @@ -14,13 +14,16 @@ User = settings.AUTH_USER_MODEL class Project(models.Model): - uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + uuid = models.UUIDField( + primary_key=True, default=uuid.uuid4, editable=False) author = models.ForeignKey(User, on_delete=models.CASCADE, db_index=True) name = models.CharField(max_length=255) description = models.TextField(blank=True, default="") licenses = models.ManyToManyField(License) - programming_languages = models.ManyToManyField(ProgrammingLanguage, through="ProjectProgrammingLanguage", related_name="projects") - hosting_platform = models.ManyToManyField(HostingPlatform, through="ProjectHostingPlatform", related_name="projects") + programming_languages = models.ManyToManyField( + ProgrammingLanguage, through="ProjectProgrammingLanguage", related_name="projects") + hosting_platform = models.ManyToManyField( + HostingPlatform, through="ProjectHostingPlatform", related_name="projects") tag = models.ManyToManyField(Tag) os = models.ManyToManyField(OperatingSystem) star = models.ManyToManyField(Star, related_name="projects_star") @@ -38,5 +41,6 @@ class Project(models.Model): def save(self, *args, **kwargs): if not self.uuid: - self.uuid = uuid.uuid3(uuid.uuid4(), f"{self.author.username}-{self.name}") + self.uuid = uuid.uuid3( + uuid.uuid4(), f"{self.author.username}-{self.name}") super().save(*args, **kwargs) diff --git a/pyproject.toml b/pyproject.toml index b770667..ed7c9bd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,3 +15,6 @@ warn_redundant_casts = true warn_return_any = true warn_unreachable = true warn_unused_configs = true + +[tool.ruff] +line-length = 160 diff --git a/requirements_dev.txt b/requirements_dev.txt index 14597cb..8373b5e 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,5 +1,2 @@ -flake8==6.0.0 mypy==0.991 -pytest-cov==4.0.0 -pytest==7.2.0 -tox==3.27.1 +ruff==0.0.262 diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 0d6842f..0000000 --- a/setup.cfg +++ /dev/null @@ -1,35 +0,0 @@ -[metadata] -name = FOSSDB -description = Free and Open-Source Software Database Website -author = Kristofers Solo -license = GPL3 -license_files = LICENSE -platforms = unix, linux, osx, cygwin, win32 -classifiers = - Programming Language :: Python :: 3.10 - -[options] -packages = FOSSDB -install_requires = - Django>=4.1 - Pillow>=9.4.0 - fontawesomefree>=6.2.1 - mysqlclient>=2.1.1 - -python_requires = >=3.10 -package_dir = =. -zip_safe = no - -[options.extras_require] -testing = - flake8>=6.0.0 - mypy>=0.991 - pytest-cov>=4.0.0 - pytest>=7.2.0 - tox>=3.27.1 - -[options.package_data] -detector = py.typed - -[flake8] -max-line-length = 160 diff --git a/setup.py b/setup.py deleted file mode 100644 index 7f1a176..0000000 --- a/setup.py +++ /dev/null @@ -1,4 +0,0 @@ -from setuptools import setup - -if __name__ == "__main__": - setup() diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 72d22b6..0000000 --- a/tox.ini +++ /dev/null @@ -1,25 +0,0 @@ -[tox] -minversion = 3.8.0 -envlist = django, flake8, mypy -isolated_build = true - -[gh-actions] -python = - 3.10: django, mypy, flake8 - - -[testenv:django] -basepython = python3.10 -deps = django -commands = python manage.py test - -[testenv:flake8] -basepython = python3.10 -deps = flake8 -commands = flake8 FOSSDB - -[testenv:mypy] -basepython = python3.10 -deps = - -r{toxinidir}/requirements_dev.txt -commands = mypy FOSSDB