wiba 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
wiba-0.2.3/MANIFEST.in ADDED
@@ -0,0 +1 @@
1
+ include requirements.txt
wiba-0.2.3/PKG-INFO ADDED
@@ -0,0 +1,198 @@
1
+ Metadata-Version: 2.4
2
+ Name: wiba
3
+ Version: 0.2.3
4
+ Summary: Official Python client library for WIBA argument mining API
5
+ Home-page: https://github.com/WIBA-ORG/wiba-python-client
6
+ Author: WIBA Research Team
7
+ Author-email: WIBA Research Team <airan002@ucr.edu>
8
+ Maintainer-email: Arman Irani <airan002@ucr.edu>
9
+ License: MIT
10
+ Project-URL: Homepage, https://wiba.dev
11
+ Project-URL: Documentation, https://wiba.dev/docs
12
+ Project-URL: Repository, https://github.com/WIBA-ORG/wiba-python-client
13
+ Project-URL: Bug Reports, https://github.com/WIBA-ORG/wiba-python-client/issues
14
+ Keywords: argument mining,natural language processing,nlp,text analysis,computational argumentation,topic extraction,stance detection
15
+ Classifier: Development Status :: 4 - Beta
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Intended Audience :: Science/Research
18
+ Classifier: License :: OSI Approved :: MIT License
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.8
22
+ Classifier: Programming Language :: Python :: 3.9
23
+ Classifier: Programming Language :: Python :: 3.10
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
27
+ Classifier: Topic :: Text Processing :: Linguistic
28
+ Requires-Python: >=3.8
29
+ Description-Content-Type: text/markdown
30
+ Requires-Dist: requests>=2.25.0
31
+ Requires-Dist: pandas>=1.2.0
32
+ Requires-Dist: numpy>=1.19.0
33
+ Requires-Dist: tqdm>=4.50.0
34
+ Requires-Dist: structlog>=21.1.0
35
+ Provides-Extra: dev
36
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
37
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
38
+ Requires-Dist: black>=23.0.0; extra == "dev"
39
+ Requires-Dist: isort>=5.12.0; extra == "dev"
40
+ Requires-Dist: flake8>=6.0.0; extra == "dev"
41
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
42
+ Provides-Extra: docs
43
+ Requires-Dist: sphinx>=5.0.0; extra == "docs"
44
+ Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == "docs"
45
+ Requires-Dist: myst-parser>=1.0.0; extra == "docs"
46
+ Dynamic: author
47
+ Dynamic: home-page
48
+ Dynamic: requires-python
49
+
50
+ # WIBA Python Client
51
+
52
+ Official Python client library for the WIBA (What Is Being Argued?) argument mining API.
53
+
54
+ ## 🚀 Quick Start
55
+
56
+ ### Installation
57
+
58
+ ```bash
59
+ pip install wiba
60
+ ```
61
+
62
+ ### Basic Usage
63
+
64
+ ```python
65
+ from wiba import WIBA
66
+
67
+ # Initialize client
68
+ client = WIBA(api_token="your_api_token")
69
+
70
+ # Detect arguments
71
+ result = client.detect("Climate change requires immediate action.")
72
+ print(result.is_argument) # True
73
+ print(result.confidence) # 0.89
74
+
75
+ # Extract topics
76
+ topic = client.extract("We must invest in renewable energy now.")
77
+ print(topic.topic) # "renewable energy"
78
+
79
+ # Analyze stance
80
+ stance = client.stance("Solar power is expensive", "renewable energy")
81
+ print(stance.stance) # "Against"
82
+
83
+ # Discover arguments in longer text
84
+ segments = client.discover_arguments(long_text)
85
+ for segment in segments:
86
+ print(f"Argument: {segment.text} (confidence: {segment.confidence})")
87
+ ```
88
+
89
+ ### Batch Processing
90
+
91
+ ```python
92
+ # Process multiple texts
93
+ texts = [
94
+ "Climate change is a serious threat.",
95
+ "We need renewable energy sources.",
96
+ "Nuclear power is too dangerous."
97
+ ]
98
+
99
+ # Batch argument detection
100
+ results = client.detect(texts)
101
+ for result in results:
102
+ print(f"{result.text}: {result.is_argument}")
103
+
104
+ # Process DataFrames
105
+ import pandas as pd
106
+ df = pd.DataFrame({'text': texts})
107
+ df_results = client.detect(df)
108
+ print(df_results[['text', 'is_argument', 'confidence']])
109
+ ```
110
+
111
+ ## 🔧 Configuration
112
+
113
+ ### API Token
114
+
115
+ Get your API token from [wiba.dev](https://wiba.dev):
116
+
117
+ ```python
118
+ # Using API token
119
+ client = WIBA(api_token="your_token_here")
120
+
121
+ # Using environment variable
122
+ import os
123
+ os.environ['WIBA_API_TOKEN'] = 'your_token_here'
124
+ client = WIBA() # Will use WIBA_API_TOKEN automatically
125
+ ```
126
+
127
+ ### Custom Configuration
128
+
129
+ ```python
130
+ from wiba import WIBA, ClientConfig
131
+
132
+ config = ClientConfig(
133
+ api_url="https://custom.wiba.dev",
134
+ api_token="your_token",
135
+ log_level="DEBUG"
136
+ )
137
+
138
+ client = WIBA(config=config)
139
+ ```
140
+
141
+ ## 📊 Features
142
+
143
+ ### Core Functions
144
+
145
+ - **`detect(texts)`** - Argument detection in text
146
+ - **`extract(texts)`** - Topic extraction from arguments
147
+ - **`stance(texts, topics)`** - Stance analysis (favor/against/neutral)
148
+ - **`discover_arguments(text)`** - Find argumentative segments in longer texts
149
+
150
+ ### Input Formats
151
+
152
+ - **Single text**: `"This is an argument"`
153
+ - **List of texts**: `["Text 1", "Text 2", "Text 3"]`
154
+ - **pandas DataFrame**: DataFrame with text column
155
+ - **CSV string**: Comma-separated values
156
+
157
+ ### Response Objects
158
+
159
+ All methods return structured response objects with:
160
+ - **Results**: List of prediction results
161
+ - **Metadata**: Request information and statistics
162
+ - **Confidence scores**: Model confidence for each prediction
163
+
164
+ ### Advanced Features
165
+
166
+ - **Batch processing** with progress bars
167
+ - **Automatic retries** with exponential backoff
168
+ - **Connection pooling** for better performance
169
+ - **DataFrame integration** for data science workflows
170
+ - **Statistics tracking** for usage monitoring
171
+
172
+ ## 🧪 Examples
173
+
174
+ Check out the [examples/](examples/) directory for:
175
+ - Basic usage examples
176
+ - Batch processing demonstrations
177
+ - DataFrame integration
178
+ - Advanced configuration
179
+ - Error handling patterns
180
+
181
+ ## 🤝 Contributing
182
+
183
+ This package is part of the WIBA-ORG collaborative development setup:
184
+
185
+ 1. **Report bugs**: [GitHub Issues](https://github.com/WIBA-ORG/wiba-python-client/issues)
186
+ 2. **Contribute code**: See [CONTRIBUTING.md](CONTRIBUTING.md)
187
+ 3. **Documentation**: Help improve our docs
188
+
189
+ ## 📄 License
190
+
191
+ MIT License - see [LICENSE](LICENSE) file for details.
192
+
193
+ ## 🔗 Links
194
+
195
+ - **Homepage**: [wiba.dev](https://wiba.dev)
196
+ - **API Documentation**: [wiba.dev/docs](https://wiba.dev/docs)
197
+ - **Research Paper**: [Link to paper]
198
+ - **GitHub Organization**: [WIBA-ORG](https://github.com/WIBA-ORG)
wiba-0.2.3/README.md ADDED
@@ -0,0 +1,149 @@
1
+ # WIBA Python Client
2
+
3
+ Official Python client library for the WIBA (What Is Being Argued?) argument mining API.
4
+
5
+ ## 🚀 Quick Start
6
+
7
+ ### Installation
8
+
9
+ ```bash
10
+ pip install wiba
11
+ ```
12
+
13
+ ### Basic Usage
14
+
15
+ ```python
16
+ from wiba import WIBA
17
+
18
+ # Initialize client
19
+ client = WIBA(api_token="your_api_token")
20
+
21
+ # Detect arguments
22
+ result = client.detect("Climate change requires immediate action.")
23
+ print(result.is_argument) # True
24
+ print(result.confidence) # 0.89
25
+
26
+ # Extract topics
27
+ topic = client.extract("We must invest in renewable energy now.")
28
+ print(topic.topic) # "renewable energy"
29
+
30
+ # Analyze stance
31
+ stance = client.stance("Solar power is expensive", "renewable energy")
32
+ print(stance.stance) # "Against"
33
+
34
+ # Discover arguments in longer text
35
+ segments = client.discover_arguments(long_text)
36
+ for segment in segments:
37
+ print(f"Argument: {segment.text} (confidence: {segment.confidence})")
38
+ ```
39
+
40
+ ### Batch Processing
41
+
42
+ ```python
43
+ # Process multiple texts
44
+ texts = [
45
+ "Climate change is a serious threat.",
46
+ "We need renewable energy sources.",
47
+ "Nuclear power is too dangerous."
48
+ ]
49
+
50
+ # Batch argument detection
51
+ results = client.detect(texts)
52
+ for result in results:
53
+ print(f"{result.text}: {result.is_argument}")
54
+
55
+ # Process DataFrames
56
+ import pandas as pd
57
+ df = pd.DataFrame({'text': texts})
58
+ df_results = client.detect(df)
59
+ print(df_results[['text', 'is_argument', 'confidence']])
60
+ ```
61
+
62
+ ## 🔧 Configuration
63
+
64
+ ### API Token
65
+
66
+ Get your API token from [wiba.dev](https://wiba.dev):
67
+
68
+ ```python
69
+ # Using API token
70
+ client = WIBA(api_token="your_token_here")
71
+
72
+ # Using environment variable
73
+ import os
74
+ os.environ['WIBA_API_TOKEN'] = 'your_token_here'
75
+ client = WIBA() # Will use WIBA_API_TOKEN automatically
76
+ ```
77
+
78
+ ### Custom Configuration
79
+
80
+ ```python
81
+ from wiba import WIBA, ClientConfig
82
+
83
+ config = ClientConfig(
84
+ api_url="https://custom.wiba.dev",
85
+ api_token="your_token",
86
+ log_level="DEBUG"
87
+ )
88
+
89
+ client = WIBA(config=config)
90
+ ```
91
+
92
+ ## 📊 Features
93
+
94
+ ### Core Functions
95
+
96
+ - **`detect(texts)`** - Argument detection in text
97
+ - **`extract(texts)`** - Topic extraction from arguments
98
+ - **`stance(texts, topics)`** - Stance analysis (favor/against/neutral)
99
+ - **`discover_arguments(text)`** - Find argumentative segments in longer texts
100
+
101
+ ### Input Formats
102
+
103
+ - **Single text**: `"This is an argument"`
104
+ - **List of texts**: `["Text 1", "Text 2", "Text 3"]`
105
+ - **pandas DataFrame**: DataFrame with text column
106
+ - **CSV string**: Comma-separated values
107
+
108
+ ### Response Objects
109
+
110
+ All methods return structured response objects with:
111
+ - **Results**: List of prediction results
112
+ - **Metadata**: Request information and statistics
113
+ - **Confidence scores**: Model confidence for each prediction
114
+
115
+ ### Advanced Features
116
+
117
+ - **Batch processing** with progress bars
118
+ - **Automatic retries** with exponential backoff
119
+ - **Connection pooling** for better performance
120
+ - **DataFrame integration** for data science workflows
121
+ - **Statistics tracking** for usage monitoring
122
+
123
+ ## 🧪 Examples
124
+
125
+ Check out the [examples/](examples/) directory for:
126
+ - Basic usage examples
127
+ - Batch processing demonstrations
128
+ - DataFrame integration
129
+ - Advanced configuration
130
+ - Error handling patterns
131
+
132
+ ## 🤝 Contributing
133
+
134
+ This package is part of the WIBA-ORG collaborative development setup:
135
+
136
+ 1. **Report bugs**: [GitHub Issues](https://github.com/WIBA-ORG/wiba-python-client/issues)
137
+ 2. **Contribute code**: See [CONTRIBUTING.md](CONTRIBUTING.md)
138
+ 3. **Documentation**: Help improve our docs
139
+
140
+ ## 📄 License
141
+
142
+ MIT License - see [LICENSE](LICENSE) file for details.
143
+
144
+ ## 🔗 Links
145
+
146
+ - **Homepage**: [wiba.dev](https://wiba.dev)
147
+ - **API Documentation**: [wiba.dev/docs](https://wiba.dev/docs)
148
+ - **Research Paper**: [Link to paper]
149
+ - **GitHub Organization**: [WIBA-ORG](https://github.com/WIBA-ORG)
@@ -0,0 +1,99 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "wiba"
7
+ version = "0.2.3"
8
+ description = "Official Python client library for WIBA argument mining API"
9
+ readme = "README.md"
10
+ license = {text = "MIT"}
11
+ authors = [
12
+ {name = "WIBA Research Team", email = "airan002@ucr.edu"},
13
+ ]
14
+ maintainers = [
15
+ {name = "Arman Irani", email = "airan002@ucr.edu"},
16
+ ]
17
+ classifiers = [
18
+ "Development Status :: 4 - Beta",
19
+ "Intended Audience :: Developers",
20
+ "Intended Audience :: Science/Research",
21
+ "License :: OSI Approved :: MIT License",
22
+ "Operating System :: OS Independent",
23
+ "Programming Language :: Python :: 3",
24
+ "Programming Language :: Python :: 3.8",
25
+ "Programming Language :: Python :: 3.9",
26
+ "Programming Language :: Python :: 3.10",
27
+ "Programming Language :: Python :: 3.11",
28
+ "Programming Language :: Python :: 3.12",
29
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
30
+ "Topic :: Text Processing :: Linguistic",
31
+ ]
32
+ keywords = [
33
+ "argument mining",
34
+ "natural language processing",
35
+ "nlp",
36
+ "text analysis",
37
+ "computational argumentation",
38
+ "topic extraction",
39
+ "stance detection",
40
+ ]
41
+ requires-python = ">=3.8"
42
+ dependencies = [
43
+ "requests>=2.25.0",
44
+ "pandas>=1.2.0",
45
+ "numpy>=1.19.0",
46
+ "tqdm>=4.50.0",
47
+ "structlog>=21.1.0",
48
+ ]
49
+
50
+ [project.optional-dependencies]
51
+ dev = [
52
+ "pytest>=7.0.0",
53
+ "pytest-asyncio>=0.21.0",
54
+ "black>=23.0.0",
55
+ "isort>=5.12.0",
56
+ "flake8>=6.0.0",
57
+ "mypy>=1.0.0",
58
+ ]
59
+ docs = [
60
+ "sphinx>=5.0.0",
61
+ "sphinx-rtd-theme>=1.2.0",
62
+ "myst-parser>=1.0.0",
63
+ ]
64
+
65
+ [project.urls]
66
+ Homepage = "https://wiba.dev"
67
+ Documentation = "https://wiba.dev/docs"
68
+ Repository = "https://github.com/WIBA-ORG/wiba-python-client"
69
+ "Bug Reports" = "https://github.com/WIBA-ORG/wiba-python-client/issues"
70
+
71
+ [project.scripts]
72
+ wiba = "wiba.cli:main"
73
+
74
+ [tool.setuptools.packages.find]
75
+ where = ["."]
76
+ include = ["wiba*"]
77
+
78
+ [tool.black]
79
+ line-length = 88
80
+ target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
81
+ include = '\.pyi?$'
82
+
83
+ [tool.isort]
84
+ profile = "black"
85
+ multi_line_output = 3
86
+ line_length = 88
87
+
88
+ [tool.pytest.ini_options]
89
+ testpaths = ["tests"]
90
+ python_files = ["test_*.py"]
91
+ python_classes = ["Test*"]
92
+ python_functions = ["test_*"]
93
+ addopts = "-v --tb=short"
94
+
95
+ [tool.mypy]
96
+ python_version = "3.8"
97
+ warn_return_any = true
98
+ warn_unused_configs = true
99
+ disallow_untyped_defs = true
@@ -0,0 +1,6 @@
1
+ # Core dependencies for WIBA Python client
2
+ requests>=2.25.0
3
+ pandas>=1.2.0
4
+ numpy>=1.19.0
5
+ tqdm>=4.50.0
6
+ structlog>=21.1.0
wiba-0.2.3/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
wiba-0.2.3/setup.py ADDED
@@ -0,0 +1,75 @@
1
+ """Setup configuration for WIBA Python client."""
2
+
3
+ from setuptools import setup, find_packages
4
+
5
+ with open("README.md", "r", encoding="utf-8") as fh:
6
+ long_description = fh.read()
7
+
8
+ with open("requirements.txt", "r", encoding="utf-8") as fh:
9
+ requirements = [line.strip() for line in fh if line.strip() and not line.startswith("#")]
10
+
11
+ setup(
12
+ name="wiba",
13
+ version="0.2.3",
14
+ author="WIBA Research Team",
15
+ author_email="airan002@ucr.edu",
16
+ description="Official Python client library for WIBA argument mining API",
17
+ long_description=long_description,
18
+ long_description_content_type="text/markdown",
19
+ url="https://github.com/WIBA-ORG/wiba-python-client",
20
+ project_urls={
21
+ "Homepage": "https://wiba.dev",
22
+ "Documentation": "https://wiba.dev/docs",
23
+ "Repository": "https://github.com/WIBA-ORG/wiba-python-client",
24
+ "Bug Reports": "https://github.com/WIBA-ORG/wiba-python-client/issues",
25
+ },
26
+ packages=find_packages(),
27
+ classifiers=[
28
+ "Development Status :: 4 - Beta",
29
+ "Intended Audience :: Developers",
30
+ "Intended Audience :: Science/Research",
31
+ "License :: OSI Approved :: MIT License",
32
+ "Operating System :: OS Independent",
33
+ "Programming Language :: Python :: 3",
34
+ "Programming Language :: Python :: 3.8",
35
+ "Programming Language :: Python :: 3.9",
36
+ "Programming Language :: Python :: 3.10",
37
+ "Programming Language :: Python :: 3.11",
38
+ "Programming Language :: Python :: 3.12",
39
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
40
+ "Topic :: Text Processing :: Linguistic",
41
+ ],
42
+ python_requires=">=3.8",
43
+ install_requires=requirements,
44
+ extras_require={
45
+ "dev": [
46
+ "pytest>=7.0.0",
47
+ "pytest-asyncio>=0.21.0",
48
+ "black>=23.0.0",
49
+ "isort>=5.12.0",
50
+ "flake8>=6.0.0",
51
+ "mypy>=1.0.0",
52
+ ],
53
+ "docs": [
54
+ "sphinx>=5.0.0",
55
+ "sphinx-rtd-theme>=1.2.0",
56
+ "myst-parser>=1.0.0",
57
+ ],
58
+ },
59
+ entry_points={
60
+ "console_scripts": [
61
+ "wiba=wiba.cli:main",
62
+ ],
63
+ },
64
+ keywords=[
65
+ "argument mining",
66
+ "natural language processing",
67
+ "nlp",
68
+ "text analysis",
69
+ "computational argumentation",
70
+ "topic extraction",
71
+ "stance detection",
72
+ ],
73
+ zip_safe=False,
74
+ include_package_data=True,
75
+ )