-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsetup.py
More file actions
86 lines (79 loc) · 2.77 KB
/
setup.py
File metadata and controls
86 lines (79 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pathlib import Path
from setuptools import setup
# Read version from __init__.py
import re
parent = Path(__file__).parent
with open(str(Path(parent, "amilib", "__init__.py"))) as f:
content = f.read()
version = re.search(r'__version__ = ["\']([^"\']+)["\']', content).group(1)
# Read README
try:
with open('README.md', encoding='utf-8') as readme_file:
readme = readme_file.read()
except FileNotFoundError:
readme = "amilib: A library for processing and analyzing scientific documents"
# Core dependencies actually used by amilib modules
requirements = [
'lxml', # XML/HTML processing
'requests', # HTTP requests
'chardet', # Character encoding detection
'pandas', # Data manipulation
'numpy', # Numerical operations
'pdfplumber', # PDF processing
'pymupdf', # PDF processing (fitz)
'selenium', # Web automation
'webdriver-manager', # Chrome driver management
'SPARQLWrapper', # SPARQL querying
]
# Optional dependencies for specific features
optional_requirements = {
'graph': [
'graphviz', # Graph visualization
'networkx', # Graph algorithms
'matplotlib', # Plotting
],
'config': [
'configparser', # Configuration file parsing
]
}
setup(
name='amilib',
version=version,
description='A library for processing and analyzing scientific documents',
long_description_content_type='text/markdown',
long_description=readme,
author='Peter Murray-Rust and semanticClimate team',
author_email='pm286@cam.ac.uk',
url='https://github.com/petermr/amilib',
packages=['amilib'],
package_dir={'amilib': 'amilib'},
include_package_data=True,
install_requires=requirements,
extras_require=optional_requirements,
license='Apache License 2.0',
zip_safe=False,
keywords='scientific documents, PDF processing, HTML processing, text analysis',
classifiers=[
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: Apache Software License',
'Natural Language :: English',
'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 :: Information Analysis',
'Topic :: Text Processing :: Markup :: HTML',
'Topic :: Text Processing :: Markup :: XML',
],
entry_points={
'console_scripts': [
'amilib=amilib.amix:main',
],
},
python_requires='>=3.8',
)