mirror of
https://github.com/gmbrax/Pilgrim.git
synced 2026-11-10 01:20:16 +00:00
Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2b5f8b743 | ||
|
|
8f98cb6c47 | ||
|
|
b8a5f2db15 | ||
|
|
db3f7f846b | ||
|
|
26ef00fe3e | ||
|
|
10135b9cdc | ||
|
|
69c2fcfde6 | ||
|
|
35f37f5926 |
@@ -0,0 +1,24 @@
|
||||
name: Pylint
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.10"]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||
pip install pylint
|
||||
- name: Analysing the code with pylint
|
||||
run: |
|
||||
pylint --disable=C0114,C0115,C0116 --exit-zero $(git ls-files '*.py')
|
||||
@@ -1,63 +0,0 @@
|
||||
name: Pylint and SonarCloud
|
||||
on:
|
||||
push:
|
||||
branches: [ main, master, staging ]
|
||||
pull_request:
|
||||
branches: [ main, master, staging ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.10"]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Necessário para SonarCloud
|
||||
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||
pip install pylint ruff coverage pytest
|
||||
|
||||
- name: Analysing the code with pylint (console output)
|
||||
run: |
|
||||
pylint --disable=C0114,C0115,C0116 --exit-zero $(git ls-files '*.py') || true
|
||||
|
||||
- name: Generate Pylint report for SonarCloud
|
||||
run: |
|
||||
pylint --disable=C0114,C0115,C0116 --output-format=json --exit-zero $(git ls-files '*.py') > pylint-report.json || true
|
||||
|
||||
- name: Run Ruff
|
||||
run: |
|
||||
ruff check --output-format=json . > ruff-report.json || true
|
||||
|
||||
- name: Run tests with coverage (if you have tests)
|
||||
run: |
|
||||
if [ -d "tests" ] || [ -f "test_*.py" ] || [ -f "*_test.py" ]; then
|
||||
coverage run -m pytest || true
|
||||
coverage xml || true
|
||||
else
|
||||
echo "No tests found, skipping coverage"
|
||||
fi
|
||||
|
||||
- name: SonarCloud Scan
|
||||
uses: SonarSource/sonarqube-scan-action@v5.0.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
with:
|
||||
args: >
|
||||
-Dsonar.projectKey=gmbrax_Pilgrim
|
||||
-Dsonar.organization=gmbrax
|
||||
-Dsonar.python.pylint.reportPaths=pylint-report.json
|
||||
-Dsonar.python.ruff.reportPaths=ruff-report.json
|
||||
-Dsonar.python.coverage.reportPaths=coverage.xml
|
||||
+30
-47
@@ -1,68 +1,51 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
|
||||
|
||||
## Unreleased
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## Planned
|
||||
* Installation Method 1 (repository compilation)
|
||||
* Organization of trips by date, location, or theme
|
||||
* Enhanced photo management features
|
||||
* Search functionality
|
||||
* Export features
|
||||
* Testing implementation
|
||||
## [Unreleased]
|
||||
|
||||
## [0.0.4] - 2025-07-19
|
||||
### Planned
|
||||
|
||||
### Added
|
||||
* Support for creating new diaries asynchronously, with an option to automatically open the newly created diary
|
||||
* Unified "Enter" key support for saving or creating diaries across relevant modals
|
||||
* Automatic diary list refresh when returning to the diary screen
|
||||
* Application configuration management with a new centralized config system
|
||||
* Database location and initialization now configurable via the new config manager
|
||||
* Automatic migration of database file to the configuration directory
|
||||
* Display of database URL on application startup for transparency
|
||||
* Duplicate photo detection before photo creation to prevent redundant entries
|
||||
* Photo hash indexing to improve photo lookup performance
|
||||
|
||||
### Changed
|
||||
* Enhanced feedback and validation when editing or creating diary names
|
||||
* Streamlined and unified save logic for diary modals, reducing duplicated behavior
|
||||
* About screen now displays the actual installed application version dynamically
|
||||
* Sidebar and photo-related UI text updated to remove emoji icons for a cleaner appearance
|
||||
* Sidebar layout and scrolling behavior improved for better usability
|
||||
* Photo hash generation now relies on existing service-provided hashes instead of local computation
|
||||
|
||||
### Improved
|
||||
* Enhanced feedback and validation when editing or creating diary names
|
||||
* Streamlined and unified save logic for diary modals, reducing duplicated behavior
|
||||
* Sidebar layout and scrolling behavior for better usability
|
||||
- Installation Method 1 (repository compilation)
|
||||
- Organization of trips by date, location, or theme
|
||||
- Enhanced photo management features
|
||||
- Search functionality
|
||||
- Export features
|
||||
- Testing implementation
|
||||
|
||||
## [0.0.3] - 2025-07-07
|
||||
|
||||
### Changed
|
||||
* Removed the dependency on textual-dev from pyproject.toml
|
||||
- Removed the dependency on textual-dev from pyproject.toml
|
||||
|
||||
## [0.0.2] - 2025-07-07
|
||||
|
||||
### Changed
|
||||
* Changed the license in pyproject.toml to BSD
|
||||
- Changed the license in pyproject.toml to BSD
|
||||
|
||||
## [0.0.1] - 2025-07-06
|
||||
|
||||
### Added
|
||||
* Initial alpha release of Pilgrim travel diary application
|
||||
* Create and edit travel diaries
|
||||
* Create and edit diary entries
|
||||
* Photo ingestion system
|
||||
* Photo addition and reference via sidebar
|
||||
* Text User Interface (TUI) built with Textual framework
|
||||
* Pre-compiled binary installation method (Method 2)
|
||||
* Support for Linux operating systems
|
||||
* Basic project documentation (README)
|
||||
|
||||
- Initial alpha release of Pilgrim travel diary application
|
||||
- Create and edit travel diaries
|
||||
- Create and edit diary entries
|
||||
- Photo ingestion system
|
||||
- Photo addition and reference via sidebar
|
||||
- Text User Interface (TUI) built with Textual framework
|
||||
- Pre-compiled binary installation method (Method 2)
|
||||
- Support for Linux operating systems
|
||||
- Basic project documentation (README)
|
||||
|
||||
### Known Issues
|
||||
* Installation Method 1 not yet implemented
|
||||
* No testing suite implemented yet
|
||||
* Some features may be unstable in an alpha version
|
||||
|
||||
- Installation Method 1 not yet implemented
|
||||
- No testing suite implemented yet
|
||||
- Some features may be unstable in an alpha version
|
||||
|
||||
[Unreleased]: https://github.com/username/pilgrim/compare/v0.0.1...HEAD
|
||||
|
||||
[0.0.1]: https://github.com/username/pilgrim/releases/tag/v0.0.1
|
||||
|
||||
+25
-20
@@ -1,31 +1,36 @@
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[project]
|
||||
name = "pilgrim"
|
||||
version = "0.0.4"
|
||||
authors = [
|
||||
|
||||
[project]
|
||||
name = "Pilgrim"
|
||||
version = "0.0.4"
|
||||
authors = [
|
||||
{ name="Gustavo Henrique Santos Souza de Miranda", email="gustavohssmiranda@gmail.com" }
|
||||
]
|
||||
description = "Pilgrim's Travel Log"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
classifiers = [
|
||||
]
|
||||
description = "Pilgrim's Travel Log"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
classifiers = [
|
||||
"Programming Language :: Python :: 3",
|
||||
"License :: OSI Approved :: BSD License",
|
||||
"Operating System :: OS Independent",
|
||||
]
|
||||
dependencies = [
|
||||
]
|
||||
dependencies = [
|
||||
"sqlalchemy",
|
||||
"textual",
|
||||
"tomli",
|
||||
"tomli_w"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://github.com/gmbrax/Pilgrim/"
|
||||
Issues = "https://github.com/gmbrax/Pilgrim/issues"
|
||||
|
||||
[project.scripts]
|
||||
pilgrim = "pilgrim.command:main"
|
||||
]
|
||||
[template.plugins.default]
|
||||
src-layout = true
|
||||
[project.urls]
|
||||
Homepage = "https://github.com/gmbrax/Pilgrim/"
|
||||
Issues = "https://github.com/gmbrax/Pilgrim/issues"
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/pilgrim"]
|
||||
[project.scripts]
|
||||
pilgrim = "pilgrim:main"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import declarative_base
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
from pathlib import Path
|
||||
import os
|
||||
|
||||
@@ -4,16 +4,15 @@ from pilgrim.models.photo_in_entry import photo_entry_association
|
||||
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from pilgrim.database import Base
|
||||
|
||||
from ..database import Base
|
||||
|
||||
|
||||
class Entry(Base):
|
||||
__tablename__ = "entries"
|
||||
id = Column(Integer, primary_key=True)
|
||||
title = Column(String,nullable=False)
|
||||
title = Column(String)
|
||||
text = Column(String)
|
||||
date = Column(DateTime,nullable=False)
|
||||
date = Column(DateTime)
|
||||
photos = relationship(
|
||||
"Photo",
|
||||
secondary=photo_entry_association,
|
||||
|
||||
@@ -7,8 +7,7 @@ from sqlalchemy.orm import relationship
|
||||
from sqlalchemy.sql.schema import Index
|
||||
|
||||
from pilgrim.models.photo_in_entry import photo_entry_association
|
||||
from pilgrim.database import Base
|
||||
|
||||
from ..database import Base
|
||||
|
||||
|
||||
class Photo(Base):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from sqlalchemy import Table, Column, Integer, ForeignKey
|
||||
|
||||
from pilgrim.database import Base
|
||||
from ..database import Base
|
||||
|
||||
photo_entry_association = Table('photo_entry_association', Base.metadata,
|
||||
Column('id', Integer, primary_key=True, autoincrement=True),
|
||||
|
||||
@@ -3,11 +3,10 @@ from typing import Any
|
||||
from sqlalchemy import Column, Integer, String, UniqueConstraint
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from pilgrim.database import Base
|
||||
from .. import database
|
||||
|
||||
|
||||
|
||||
class TravelDiary(Base):
|
||||
class TravelDiary(database.Base):
|
||||
__tablename__ = "travel_diaries"
|
||||
id = Column(Integer, primary_key=True)
|
||||
name = Column(String, nullable=False)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
from datetime import datetime
|
||||
from typing import List
|
||||
|
||||
from pilgrim.models.entry import Entry
|
||||
from pilgrim.models.travel_diary import TravelDiary
|
||||
from pilgrim.models.photo import Photo # ✨ Importe o modelo Photo
|
||||
from ..models.entry import Entry
|
||||
from ..models.travel_diary import TravelDiary
|
||||
from ..models.photo import Photo # ✨ Importe o modelo Photo
|
||||
|
||||
|
||||
class EntryService:
|
||||
|
||||
@@ -6,7 +6,7 @@ from pathlib import Path
|
||||
from pilgrim.utils import DirectoryManager
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
|
||||
from pilgrim.models.travel_diary import TravelDiary
|
||||
from ..models.travel_diary import TravelDiary
|
||||
|
||||
|
||||
class TravelDiaryService:
|
||||
|
||||
Reference in New Issue
Block a user