mirror of
https://github.com/arsenetar/dupeguru.git
synced 2026-01-24 23:51:38 +00:00
Compare commits
2 Commits
master
...
as/pyproje
| Author | SHA1 | Date | |
|---|---|---|---|
|
f26b515286
|
|||
|
9f83018a1a
|
12
.github/FUNDING.yml
vendored
12
.github/FUNDING.yml
vendored
@@ -1 +1,13 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: arsenetar
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||
|
||||
9
.github/workflows/codeql-analysis.yml
vendored
9
.github/workflows/codeql-analysis.yml
vendored
@@ -25,10 +25,11 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
|
||||
uses: github/codeql-action/init@v1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -43,7 +44,7 @@ jobs:
|
||||
make modules
|
||||
- if: matrix.language == 'python'
|
||||
name: Autobuild
|
||||
uses: github/codeql-action/autobuild@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
# Analysis
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
|
||||
uses: github/codeql-action/analyze@v1
|
||||
|
||||
14
.github/workflows/default.yml
vendored
14
.github/workflows/default.yml
vendored
@@ -11,9 +11,9 @@ jobs:
|
||||
pre-commit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python 3.12
|
||||
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
- uses: pre-commit/action@v3.0.1
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13", "3.14"]
|
||||
python-version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12"]
|
||||
include:
|
||||
- os: windows-latest
|
||||
python-version: "3.12"
|
||||
@@ -31,9 +31,9 @@ jobs:
|
||||
python-version: "3.12"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
@@ -49,7 +49,7 @@ jobs:
|
||||
pytest core hscommon
|
||||
- name: Upload Artifacts
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: modules ${{ matrix.python-version }}
|
||||
path: build/**/*.so
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Merge Artifacts
|
||||
uses: actions/upload-artifact/merge@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
||||
uses: actions/upload-artifact/merge@v4
|
||||
with:
|
||||
name: modules
|
||||
pattern: modules*
|
||||
|
||||
2
.github/workflows/tx-push.yml
vendored
2
.github/workflows/tx-push.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
push-source:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
- uses: actions/checkout@v4
|
||||
- name: Get Transifex Client
|
||||
run: |
|
||||
curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash -s -- $TX_VERSION
|
||||
|
||||
@@ -10,6 +10,7 @@ from optparse import OptionParser
|
||||
import shutil
|
||||
from multiprocessing import Pool
|
||||
|
||||
from setuptools import sandbox
|
||||
from hscommon import sphinxgen
|
||||
from hscommon.build import (
|
||||
add_to_pythonpath,
|
||||
@@ -17,7 +18,6 @@ from hscommon.build import (
|
||||
fix_qt_resource_file,
|
||||
)
|
||||
from hscommon import loc
|
||||
import subprocess
|
||||
|
||||
|
||||
def parse_args():
|
||||
@@ -118,7 +118,7 @@ def build_normpo():
|
||||
def build_pe_modules():
|
||||
print("Building PE Modules")
|
||||
# Leverage setup.py to build modules
|
||||
subprocess.check_call([sys.executable, "setup.py", "build_ext", "--inplace"])
|
||||
sandbox.run_setup("setup.py", ["build_ext", "--inplace"])
|
||||
|
||||
|
||||
def build_normal():
|
||||
@@ -325,7 +325,7 @@ class Results(Markable):
|
||||
del self.__group_of_duplicate[dupe]
|
||||
self._remove_mark_flag(dupe)
|
||||
self.__total_count -= 1
|
||||
self.__total_size = max(0, self.__total_size - dupe.size)
|
||||
self.__total_size -= dupe.size
|
||||
if not group:
|
||||
del self.__group_of_duplicate[ref]
|
||||
self.__groups.remove(group)
|
||||
|
||||
@@ -1,9 +1,86 @@
|
||||
[build-system]
|
||||
requires = ["setuptools"]
|
||||
requires = ["setuptools >= 75.3.1"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "dupeGuru"
|
||||
description = "dupeGuru is a tool to find duplicate files on your computer."
|
||||
authors = [
|
||||
{name = "Andrew Senetar", email = "arsenetar@voltaicideas.net"}
|
||||
]
|
||||
readme = "README.md"
|
||||
license = "GPL-3.0-or-later"
|
||||
license-files = ["LICENSE"]
|
||||
keywords = ["deduplication"]
|
||||
classifiers = [
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"Intended Audience :: End Users/Desktop",
|
||||
"Operating System :: MacOS :: MacOS X",
|
||||
"Operating System :: Microsoft :: Windows",
|
||||
"Operating System :: POSIX",
|
||||
"Programming Language :: Python :: 3 :: Only",
|
||||
"Programming Language :: Python :: 3.7",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Topic :: Desktop Environment :: File Managers",
|
||||
]
|
||||
requires-python = ">=3.7, <3.13"
|
||||
|
||||
dynamic = ["version"]
|
||||
|
||||
dependencies = [
|
||||
"distro>=1.8.0,<2.0.0",
|
||||
"mutagen>=1.46.0,<2.0.0",
|
||||
"polib>=1.1.0,<2.0.0",
|
||||
"PyQt5 >=5.15.0,<6.0; sys_platform != 'linux'",
|
||||
"pywin32>=304; sys_platform == 'win32'",
|
||||
"semantic-version>=2.0.0,<3.0.0",
|
||||
"Send2Trash>=1.8.2",
|
||||
"xxhash>=3.0.0,<4.0.0",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"pytest>=7,<8",
|
||||
"flake8",
|
||||
"black",
|
||||
]
|
||||
build = [
|
||||
"dupeGuru[dev]",
|
||||
"sphinx>=5.3.0,<8.0.0",
|
||||
"pyinstaller>=5.6,<6.0; sys_platform != 'linux'"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://dupeguru.voltaicideas.net/"
|
||||
Documentation = "https://dupeguru.voltaicideas.net/help/en/"
|
||||
Repository = "https://github.com/arsenetar/dupeguru.git"
|
||||
Issues = "https://github.com/arsenetar/dupeguru/issues"
|
||||
Releases = "https://github.com/arsenetar/dupeguru/releases"
|
||||
|
||||
[project.gui-scripts]
|
||||
dupeguru = "dupeguru.__main__:main"
|
||||
|
||||
[tool.black]
|
||||
line-length = 120
|
||||
|
||||
[tool.isort]
|
||||
# make it compatible with black
|
||||
profile = "black"
|
||||
skip_gitignore = true
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
include = ["core", "hscommon", "qt"]
|
||||
|
||||
[tool.setuptools.dynamic]
|
||||
version = {attr = "core.__version__"}
|
||||
|
||||
[tool.setuptools]
|
||||
ext-modules = [
|
||||
{name = "core.pe._block", sources = ["core/pe/modules/block.c", "core/pe/modules/common.c"], include-dirs = ["core/pe/modules"]},
|
||||
{name = "core.pe._cache", sources = ["core/pe/modules/cache.c", "core/pe/modules/common.c"], include-dirs = ["core/pe/modules"]},
|
||||
{name = "qt.pe._block_qt", sources = ["qt/pe/modules/block.c"]},
|
||||
]
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
pytest>=7,<8
|
||||
flake8
|
||||
black
|
||||
pyinstaller>=5.6,<6.0; sys_platform != 'linux'
|
||||
@@ -1,9 +0,0 @@
|
||||
distro>=1.8.0,<2.0.0
|
||||
mutagen>=1.46.0,<2.0.0
|
||||
polib>=1.1.0,<2.0.0
|
||||
PyQt5 >=5.15.0,<6.0; sys_platform != 'linux'
|
||||
pywin32>=304; sys_platform == 'win32'
|
||||
semantic-version>=2.0.0,<3.0.0
|
||||
Send2Trash>=1.8.2,<2.0.0
|
||||
sphinx>=5.3.0,<8.0.0
|
||||
xxhash>=3.0.0,<4.0.0
|
||||
48
setup.cfg
48
setup.cfg
@@ -1,48 +0,0 @@
|
||||
[metadata]
|
||||
name = dupeGuru
|
||||
version = attr: core.__version__
|
||||
url = https://github.com/arsenetar/dupeguru
|
||||
project_urls =
|
||||
Bug Reports = https://github.com/arsenetar/dupeguru/issues
|
||||
author = Andrew Senetar
|
||||
author_email = arsenetar@voltaicideas.net
|
||||
license = GPLv3
|
||||
license_files = license
|
||||
description = dupeGuru is a tool to find duplicate files on your computer.
|
||||
long_description = file:README.md
|
||||
long_description_content_type = text/markdown
|
||||
classifiers =
|
||||
Development Status :: 5 - Production/Stable
|
||||
Intended Audience :: End Users/Desktop
|
||||
License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
||||
Operating System :: MacOS :: MacOS X
|
||||
Operating System :: Microsoft :: Windows
|
||||
Operating System :: POSIX
|
||||
Programming Language :: Python :: 3.7
|
||||
Programming Language :: Python :: 3.8
|
||||
Programming Language :: Python :: 3.9
|
||||
Programming Language :: Python :: 3.10
|
||||
Programming Language :: Python :: 3 :: Only
|
||||
Topic :: Desktop Environment :: File Managers
|
||||
|
||||
[options]
|
||||
packages = find:
|
||||
python_requires = >=3.7
|
||||
install_requires =
|
||||
Send2Trash>=1.8.2,<2.0.0
|
||||
mutagen>=1.46.0,<2.0.0
|
||||
distro>=1.8.0,<2.0.0
|
||||
PyQt5 >=5.15.0,<6.0; sys_platform != 'linux'
|
||||
pywin32>=228; sys_platform == 'win32'
|
||||
semantic-version>=2.0.0,<3.0.0
|
||||
xxhash>=3.0.0,<4.0.0
|
||||
setup_requires =
|
||||
sphinx>=3.0.0
|
||||
polib>=1.1.0
|
||||
tests_require =
|
||||
pytest >=6,<7
|
||||
include_package_data = true
|
||||
|
||||
[options.entry_points]
|
||||
console_scripts =
|
||||
dupeguru = run.py
|
||||
26
setup.py
26
setup.py
@@ -1,26 +0,0 @@
|
||||
from setuptools import setup, Extension
|
||||
from pathlib import Path
|
||||
|
||||
exts = [
|
||||
Extension(
|
||||
"core.pe._block",
|
||||
[
|
||||
str(Path("core", "pe", "modules", "block.c")),
|
||||
str(Path("core", "pe", "modules", "common.c")),
|
||||
],
|
||||
include_dirs=[str(Path("core", "pe", "modules"))],
|
||||
),
|
||||
Extension(
|
||||
"core.pe._cache",
|
||||
[
|
||||
str(Path("core", "pe", "modules", "cache.c")),
|
||||
str(Path("core", "pe", "modules", "common.c")),
|
||||
],
|
||||
include_dirs=[str(Path("core", "pe", "modules"))],
|
||||
),
|
||||
Extension("qt.pe._block_qt", [str(Path("qt", "pe", "modules", "block.c"))]),
|
||||
]
|
||||
|
||||
headers = [str(Path("core", "pe", "modules", "common.h"))]
|
||||
|
||||
setup(ext_modules=exts, headers=headers)
|
||||
Reference in New Issue
Block a user