mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-09-12 04:01:35 +00:00
- Add complete libs/semantica framework with 20+ production-ready modules - Implement core orchestration, configuration, and plugin management - Add comprehensive data ingestion (files, web, streams, databases, emails) - Implement parsing for documents, web content, structured data, code, media - Add data normalization (text, entities, dates, numbers, quality) - Implement semantic extraction (NER, relations, events, coreference, triples) - Add ontology management and knowledge graph construction - Implement graph analytics (centrality, community detection, connectivity) - Add embeddings generation and vector store management - Implement pipeline orchestration and streaming processing - Add security (access control, data masking, PII redaction) - Implement quality assurance and validation systems - Add export capabilities (RDF, JSON, CSV, graph formats) - Create comprehensive cookbook with examples and use cases - Add basic examples (document processing, web scraping, knowledge graphs) - Add advanced examples (multi-modal processing, real-time analytics) - Implement detailed bullet-point comments throughout - Follow SDK best practices and Python-only implementation - Add comprehensive pyproject.toml with dependencies and configuration - Include detailed README with usage examples and documentation This commit establishes the complete foundation for the Semantica semantic layer and knowledge engineering framework.
238 lines
6.0 KiB
TOML
238 lines
6.0 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "semantica"
|
|
version = "0.1.0"
|
|
description = "Semantic Layer & Knowledge Engineering Framework"
|
|
readme = "README.md"
|
|
license = {text = "MIT"}
|
|
authors = [
|
|
{name = "Semantica Contributors", email = "contributors@semantica.dev"}
|
|
]
|
|
maintainers = [
|
|
{name = "Semantica Contributors", email = "contributors@semantica.dev"}
|
|
]
|
|
keywords = [
|
|
"semantic-layer", "knowledge-engineering", "nlp", "knowledge-graph",
|
|
"embeddings", "entity-extraction", "relationship-extraction", "rdf",
|
|
"ontology", "semantic-analysis", "ai", "machine-learning"
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Science/Research",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"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 :: Scientific/Engineering :: Artificial Intelligence",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
"Topic :: Text Processing :: Linguistic",
|
|
"Topic :: Database :: Database Engines/Servers",
|
|
"Topic :: Internet :: WWW/HTTP :: Indexing/Search"
|
|
]
|
|
requires-python = ">=3.8"
|
|
dependencies = [
|
|
"numpy>=1.21.0",
|
|
"pandas>=1.3.0",
|
|
"scikit-learn>=1.0.0",
|
|
"spacy>=3.4.0",
|
|
"transformers>=4.20.0",
|
|
"torch>=1.12.0",
|
|
"sentence-transformers>=2.2.0",
|
|
"rdflib>=6.2.0",
|
|
"networkx>=2.8.0",
|
|
"matplotlib>=3.5.0",
|
|
"seaborn>=0.11.0",
|
|
"plotly>=5.10.0",
|
|
"requests>=2.28.0",
|
|
"beautifulsoup4>=4.11.0",
|
|
"lxml>=4.9.0",
|
|
"pypdf2>=2.10.0",
|
|
"python-docx>=0.8.11",
|
|
"openpyxl>=3.0.10",
|
|
"pillow>=9.2.0",
|
|
"librosa>=0.9.0",
|
|
"opencv-python>=4.6.0",
|
|
"faiss-cpu>=1.7.0",
|
|
"pinecone-client>=2.2.0",
|
|
"weaviate-client>=3.15.0",
|
|
"qdrant-client>=1.3.0",
|
|
"neo4j>=5.0.0",
|
|
"pymongo>=4.2.0",
|
|
"sqlalchemy>=1.4.0",
|
|
"psycopg2-binary>=2.9.0",
|
|
"pymysql>=1.0.0",
|
|
"redis>=4.3.0",
|
|
"celery>=5.2.0",
|
|
"kafka-python>=2.0.0",
|
|
"pulsar-client>=3.0.0",
|
|
"pika>=1.3.0",
|
|
"boto3>=1.24.0",
|
|
"azure-storage-blob>=12.12.0",
|
|
"google-cloud-storage>=2.5.0",
|
|
"pydantic>=1.10.0",
|
|
"click>=8.1.0",
|
|
"rich>=12.5.0",
|
|
"tqdm>=4.64.0",
|
|
"pyyaml>=6.0",
|
|
"toml>=0.10.0",
|
|
"python-dotenv>=0.20.0",
|
|
"loguru>=0.6.0",
|
|
"structlog>=22.1.0",
|
|
"prometheus-client>=0.14.0",
|
|
"opentelemetry-api>=1.12.0",
|
|
"opentelemetry-sdk>=1.12.0",
|
|
"opentelemetry-instrumentation>=0.32.0",
|
|
"fastapi>=0.78.0",
|
|
"uvicorn>=0.18.0",
|
|
"pytest>=7.1.0",
|
|
"pytest-cov>=3.0.0",
|
|
"pytest-asyncio>=0.19.0",
|
|
"black>=22.6.0",
|
|
"isort>=5.10.0",
|
|
"flake8>=4.0.0",
|
|
"mypy>=0.971",
|
|
"pre-commit>=2.19.0"
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=7.1.0",
|
|
"pytest-cov>=3.0.0",
|
|
"pytest-asyncio>=0.19.0",
|
|
"black>=22.6.0",
|
|
"isort>=5.10.0",
|
|
"flake8>=4.0.0",
|
|
"mypy>=0.971",
|
|
"pre-commit>=2.19.0",
|
|
"jupyter>=1.0.0",
|
|
"ipykernel>=6.15.0",
|
|
"notebook>=6.4.0"
|
|
]
|
|
gpu = [
|
|
"torch>=1.12.0+cu116",
|
|
"faiss-gpu>=1.7.0",
|
|
"cupy>=10.0.0"
|
|
]
|
|
cloud = [
|
|
"boto3>=1.24.0",
|
|
"azure-storage-blob>=12.12.0",
|
|
"google-cloud-storage>=2.5.0",
|
|
"kubernetes>=24.0.0",
|
|
"helm>=3.10.0"
|
|
]
|
|
monitoring = [
|
|
"prometheus-client>=0.14.0",
|
|
"opentelemetry-api>=1.12.0",
|
|
"opentelemetry-sdk>=1.12.0",
|
|
"opentelemetry-instrumentation>=0.32.0",
|
|
"grafana-api>=1.0.0",
|
|
"elasticsearch>=8.5.0"
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://semantica.dev"
|
|
Documentation = "https://docs.semantica.dev"
|
|
Repository = "https://github.com/semantica-dev/semantica"
|
|
Issues = "https://github.com/semantica-dev/semantica/issues"
|
|
Changelog = "https://github.com/semantica-dev/semantica/blob/main/CHANGELOG.md"
|
|
|
|
[project.scripts]
|
|
semantica = "semantica.cli:main"
|
|
semantica-server = "semantica.server:main"
|
|
semantica-worker = "semantica.worker:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["semantica*"]
|
|
exclude = ["tests*", "docs*", "examples*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
semantica = ["*.yaml", "*.yml", "*.json", "*.toml", "*.txt", "*.md"]
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
|
|
include = '\.pyi?$'
|
|
extend-exclude = '''
|
|
/(
|
|
# directories
|
|
\.eggs
|
|
| \.git
|
|
| \.hg
|
|
| \.mypy_cache
|
|
| \.tox
|
|
| \.venv
|
|
| build
|
|
| dist
|
|
)/
|
|
'''
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
multi_line_output = 3
|
|
line_length = 88
|
|
known_first_party = ["semantica"]
|
|
known_third_party = ["numpy", "pandas", "scikit-learn", "spacy", "transformers", "torch"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.8"
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
disallow_untyped_defs = true
|
|
disallow_incomplete_defs = true
|
|
check_untyped_defs = true
|
|
disallow_untyped_decorators = true
|
|
no_implicit_optional = true
|
|
warn_redundant_casts = true
|
|
warn_unused_ignores = true
|
|
warn_no_return = true
|
|
warn_unreachable = true
|
|
strict_equality = true
|
|
show_error_codes = true
|
|
|
|
[tool.pytest.ini_options]
|
|
minversion = "7.0"
|
|
addopts = "-ra -q --strict-markers --strict-config"
|
|
testpaths = ["tests"]
|
|
python_files = ["test_*.py", "*_test.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
markers = [
|
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
"integration: marks tests as integration tests",
|
|
"unit: marks tests as unit tests",
|
|
"gpu: marks tests that require GPU",
|
|
"cloud: marks tests that require cloud services"
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["semantica"]
|
|
omit = [
|
|
"*/tests/*",
|
|
"*/test_*",
|
|
"*/__pycache__/*",
|
|
"*/migrations/*"
|
|
]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"if self.debug:",
|
|
"if settings.DEBUG",
|
|
"raise AssertionError",
|
|
"raise NotImplementedError",
|
|
"if 0:",
|
|
"if __name__ == .__main__.:",
|
|
"class .*\\bProtocol\\):",
|
|
"@(abc\\.)?abstractmethod"
|
|
]
|