modulift 0.0.1__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.
@@ -0,0 +1,194 @@
1
+ Metadata-Version: 2.1
2
+ Name: modulift
3
+ Version: 0.0.1
4
+ Summary: A powerful search tool for discovering Python packages based on user queries
5
+ Home-page: https://github.com/okanyenigun/modulift
6
+ Author: Okan Yenigün
7
+ Author-email: okanyenigun@gmail.com
8
+ License: MIT
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: Intended Audience :: Information Technology
13
+ Classifier: Intended Audience :: Education
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Classifier: Topic :: Software Development :: Documentation
16
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.7
20
+ Classifier: Programming Language :: Python :: 3.8
21
+ Classifier: Programming Language :: Python :: 3.9
22
+ Classifier: Programming Language :: Python :: 3.10
23
+ Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Operating System :: OS Independent
25
+ Requires-Python: >=3.7
26
+ Description-Content-Type: text/markdown
27
+ Provides-Extra: dev
28
+ Provides-Extra: test
29
+
30
+ # Modulift
31
+
32
+ **Modulift** is a powerful and efficient Python package designed to help developers, data scientists, and researchers explore and discover Python packages on PyPI based on specific keywords, package names, or full-text search within package descriptions. With a comprehensive dataset of PyPI packages, Modulift allows you to find relevant libraries for your project needs, making it an invaluable tool for anyone looking to streamline package selection and integration.
33
+
34
+ ## Key Features
35
+
36
+ - **Exact Package Name Search**: Retrieve detailed information on a specific package by name.
37
+ - **Keyword-Based Search**: Search packages by multiple keywords with flexible "or" and "and" logic to refine results.
38
+ - **Full-Text Description Search**: Locate packages by searching for specific phrases or content in their descriptions.
39
+ - **Markdown Output Option**: Print search results in Markdown format, ideal for documentation or presentations.
40
+
41
+ ## Installation
42
+
43
+ Install Modulift via pip:
44
+
45
+ ```bash
46
+ pip install modulift
47
+ ```
48
+
49
+ ## Usage
50
+
51
+ Modulift provides an easy-to-use API for searching and exploring Python packages. Here’s a quick guide on how to use its core features.
52
+
53
+ ### 1. Search by Package Name
54
+
55
+ Retrieve detailed information for a specific package by name:
56
+
57
+ ```python
58
+ import modulift as mf
59
+
60
+ result = mf.search_by_package_name("numpy")
61
+ print(result)
62
+ ```
63
+
64
+ **Output**:
65
+
66
+ ```python
67
+ {
68
+ 'package': 'numpy',
69
+ 'description': 'NumPy is the fundamental package for scientific computing with Python. It provides powerful N-dimensional arrays, sophisticated mathematical functions, tools for integrating C/C++ and Fortran code, and useful linear algebra, Fourier transform, and random number capabilities.',
70
+ 'keywords': 'scientific computing, array, linear algebra, Fourier transform, random number generation, data processing, numerical analysis',
71
+ 'popularity': 'very popular'
72
+ }
73
+ ```
74
+
75
+ For a different package:
76
+
77
+ ```python
78
+ result = mf.search_by_package_name("nullsweep")
79
+ print(result)
80
+ ```
81
+
82
+ **Output**:
83
+
84
+ ```python
85
+ {
86
+ 'package': 'nullsweep',
87
+ 'description': 'NullSweep is a Python library designed for detecting and handling patterns of missing data in pandas DataFrames. It provides a simple API to identify global missing data patterns across the entire dataset, patterns related to specific features within the dataset, and to impute missing values using various strategies.',
88
+ 'keywords': 'missing data, data imputation, pandas, pattern detection, feature-specific patterns',
89
+ 'popularity': 'popular'
90
+ }
91
+ ```
92
+
93
+ Markdown Output
94
+ To display the result in Markdown format:
95
+
96
+ ```python
97
+ result = mf.search_by_package_name("numpy", markdown=True)
98
+ ```
99
+
100
+ **Package**: numpy
101
+
102
+ - **Description**: NumPy is the fundamental package for scientific computing with Python. It provides powerful N-dimensional arrays, sophisticated mathematical functions, tools for integrating C/C++ and Fortran code, and useful linear algebra, Fourier transform, and random number capabilities.
103
+ - **Keywords**: scientific computing, array, linear algebra, Fourier transform, random number generation, data processing, numerical analysis
104
+ - **Popularity**: very popular
105
+
106
+ ### 2. Search by Keywords
107
+
108
+ Search for packages using one or more keywords. Modulift supports both "or" and "and" relations.
109
+
110
+ Single Keyword Search
111
+
112
+ ```python
113
+ result = mf.search_by_keywords("data science")
114
+ print(len(result))
115
+ ```
116
+
117
+ Output:
118
+
119
+ ```python
120
+ 3141 # Number of packages related to "data science"
121
+ ```
122
+
123
+ Multi-Keyword Search with "and" Relation
124
+
125
+ ```python
126
+ result = mf.search_by_keywords("data science", "machine learning", "deep learning", relation="and")
127
+ print(len(result))
128
+ ```
129
+
130
+ Output:
131
+
132
+ ```python
133
+ 115 # Number of packages related to all three keywords
134
+ ```
135
+
136
+ Limiting Results with Markdown Output
137
+
138
+ ```python
139
+ result = mf.search_by_keywords("data science", "machine learning", "deep learning", relation="and", limit=3, markdown=True)
140
+ ```
141
+
142
+ Markdown Output
143
+
144
+ **1. sagemaker**
145
+
146
+ - **Description**: The SageMaker Python SDK is an open-source library designed for training and deploying machine learning models on Amazon SageMaker. It supports popular deep learning frameworks like Apache MXNet and TensorFlow, as well as Amazon's own scalable algorithms optimized for SageMaker. Users can also deploy custom algorithms in Docker containers, making it versatile for various machine learning tasks.
147
+ - **Keywords**: machine learning, deep learning, model deployment, Amazon SageMaker, data science, AI, Docker
148
+ - **Popularity**: very popular
149
+
150
+ ---
151
+
152
+ **2. fastbook**
153
+
154
+ - **Description**: fastbook is a comprehensive resource for learning deep learning through practical coding examples using the fastai library and PyTorch. It is designed for coders of all backgrounds, providing accessible education on deep learning techniques and applications across various domains, including computer vision and natural language processing.
155
+ - **Keywords**: deep learning, fastai, PyTorch, computer vision, natural language processing, machine learning, data science, Jupyter Notebooks
156
+ - **Popularity**: very popular
157
+
158
+ ---
159
+
160
+ **3. ProAiLab**
161
+
162
+ - **Description**: ProAiLab is a Python library designed for building and deploying AI models. It provides tools for data preprocessing, model training, and evaluation, making it suitable for both beginners and experienced machine learning practitioners.
163
+ - **Keywords**: machine learning, AI, deep learning, data science, model development
164
+ - **Popularity**: popular
165
+
166
+ ### 3. Full-Text Search in Descriptions
167
+
168
+ Search for packages based on specific phrases within the description.
169
+
170
+ ```python
171
+ result = mf.search_by_description("training and deploying machine learning models on Amazon", markdown=True)
172
+ ```
173
+
174
+ Markdown Output
175
+
176
+ **1. sagemaker**
177
+
178
+ - **Description**: The SageMaker Python SDK is an open-source library designed for training and deploying machine learning models on Amazon SageMaker. It supports popular deep learning frameworks like Apache MXNet and TensorFlow, as well as Amazon's own scalable algorithms optimized for SageMaker. Users can also deploy custom algorithms in Docker containers, making it versatile for various machine learning tasks.
179
+ - **Keywords**: machine learning, deep learning, model deployment, Amazon SageMaker, data science, AI, Docker
180
+ - **Popularity**: very popular
181
+
182
+ ## License
183
+
184
+ Modulift is licensed under the MIT License. See [LICENSE](Licence.md) for more details.
185
+
186
+ ## Contributing
187
+
188
+ We welcome contributions to Modulift! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
189
+
190
+ ## Contact
191
+
192
+ For any questions or feedback, please contact the author:
193
+
194
+ - **Okan Yenigün** - [okanyenigun@gmail.com](mailto:okanyenigun@gmail.com)
@@ -0,0 +1,3 @@
1
+ from .api import *
2
+
3
+ __version__ = '0.0.1'
@@ -0,0 +1,196 @@
1
+ import pandas as pd
2
+ from typing import List, Optional, Union
3
+ from .data import load_data
4
+
5
+
6
+ def search_by_keywords(*args: str, relation: str = "or", limit: Optional[int] = None, markdown: bool = False) -> List[dict]:
7
+ """
8
+ Search for keywords in the 'keywords' column with a specified relation ('or' or 'and') and optional limit on results.
9
+
10
+ Parameters:
11
+ *args (str): Keywords to search for in the 'keywords' column.
12
+ relation (str, optional): Defines the logical relationship for keyword matching.
13
+ Use "or" for matching any keyword, and "and" for matching all keywords.
14
+ Defaults to "or".
15
+ limit (int, optional): The maximum number of results to return. Defaults to None, which returns all matches.
16
+ markdown (bool, optional): If True, prints the results in markdown format. Defaults to False.
17
+
18
+ Returns:
19
+ List[dict]: A list of dictionaries with 'package', 'description', 'keywords', and 'popularity' fields
20
+ for each row that matches the search criteria, sorted by 'popularity' in the specified order.
21
+
22
+ Notes:
23
+ - The 'popularity' column is sorted in the order ['very popular', 'popular', 'not popular'].
24
+ - Markdown output is only printed and does not affect the returned result structure.
25
+
26
+ Example:
27
+ >>> search_by_keywords("machine learning", "data science", relation="and", limit=5, markdown=True)
28
+ [
29
+ {
30
+ 'package': 'example-package',
31
+ 'description': 'An example package for machine learning.',
32
+ 'keywords': 'machine learning, data science, AI',
33
+ 'popularity': 'very popular'
34
+ },
35
+ ...
36
+ ]
37
+ """
38
+ # Validate and normalize inputs
39
+ if not args:
40
+ raise ValueError("At least one keyword must be provided for search.")
41
+
42
+ if relation not in {"or", "and"}:
43
+ raise ValueError("The 'relation' parameter must be either 'or' or 'and'.")
44
+
45
+ if limit is not None and (not isinstance(limit, int) or limit <= 0):
46
+ raise ValueError("The 'limit' parameter must be a positive integer if specified.")
47
+
48
+ # Load the DataFrame
49
+ df = load_data()
50
+
51
+ # Convert the input keywords to a list
52
+ keywords = list(args)
53
+
54
+ # Define the boolean mask based on 'or' or 'and' logic
55
+ if relation == "and":
56
+ mask = df['keywords'].apply(lambda cell: all(keyword.lower() in str(cell).lower() for keyword in keywords))
57
+ else: # default to 'or' logic
58
+ mask = df['keywords'].apply(lambda cell: any(keyword.lower() in str(cell).lower() for keyword in keywords))
59
+
60
+ # Filter the DataFrame with matching rows and select required columns
61
+ result_df = df[mask][['package', 'description', 'keywords', 'popularity']]
62
+
63
+ # Define a custom order for sorting popularity
64
+ popularity_order = ['very popular', 'popular', 'not popular']
65
+
66
+ # Sort the DataFrame by 'POPULARITY' based on the defined order
67
+ result_df['popularity'] = pd.Categorical(result_df['popularity'], categories=popularity_order, ordered=True)
68
+ result_df = result_df.sort_values('popularity')
69
+
70
+ # Apply limit if specified
71
+ if limit is not None:
72
+ result_df = result_df.head(limit)
73
+
74
+ # Convert to a list of dictionaries
75
+ results = result_df.to_dict(orient='records')
76
+
77
+ # Print in markdown format if markdown is True
78
+ if markdown:
79
+ for i, row in enumerate(results, 1):
80
+ print(f"**{i}. {row['package']}**")
81
+ print(f"- **Description**: {row['description']}")
82
+ print(f"- **Keywords**: {row['keywords']}")
83
+ print(f"- **Popularity**: {row['popularity']}")
84
+ print("\n---\n")
85
+
86
+ return results
87
+
88
+ def search_by_package_name(package_name: str, markdown: bool = False) -> Optional[dict]:
89
+ """
90
+ Search for an exact package name in the 'package' column of the DataFrame.
91
+
92
+ Parameters:
93
+ package_name (str): The exact package name to search for.
94
+ markdown (bool, optional): If True, prints the result in markdown format. Defaults to False.
95
+
96
+ Returns:
97
+ Optional[dict]: A dictionary with 'package', 'description', 'keywords', and 'popularity' fields if a match is found;
98
+ otherwise, returns None.
99
+
100
+ Example:
101
+ >>> search_by_package_name("example-package", markdown=True)
102
+ {
103
+ 'package': 'example-package',
104
+ 'description': 'An example package for data processing.',
105
+ 'keywords': 'data processing, analysis, example',
106
+ 'popularity': 'very popular'
107
+ }
108
+ """
109
+ if not isinstance(package_name, str) or not package_name.strip():
110
+ raise ValueError("The 'package_name' parameter must be a non-empty string.")
111
+
112
+ # Load the DataFrame
113
+ df = load_data()
114
+
115
+ # Perform exact match search in the 'package' column
116
+ result_df = df[df['package'] == package_name][['package', 'description', 'keywords', 'popularity']]
117
+
118
+ # Check if there is a match
119
+ if not result_df.empty:
120
+ result = result_df.iloc[0].to_dict()
121
+
122
+ # Print in markdown format if markdown is True
123
+ if markdown:
124
+ print(f"**Package**: {result['package']}")
125
+ print(f"- **Description**: {result['description']}")
126
+ print(f"- **Keywords**: {result['keywords']}")
127
+ print(f"- **Popularity**: {result['popularity']}")
128
+ print("\n---\n")
129
+
130
+ return result
131
+ else:
132
+ if markdown:
133
+ print(f"No match found for package name '{package_name}'.")
134
+ return None
135
+
136
+
137
+ def search_by_description(text: str, limit: Optional[int] = None, markdown: bool = False) -> List[dict]:
138
+ """
139
+ Perform a full-text search in the 'description' column for a specific text, with an optional limit and markdown output.
140
+
141
+ Parameters:
142
+ text (str): The text to search for in the 'description' column.
143
+ limit (int, optional): The maximum number of results to return. Defaults to None, which returns all matches.
144
+ markdown (bool, optional): If True, prints the results in markdown format. Defaults to False.
145
+
146
+ Returns:
147
+ List[dict]: A list of dictionaries with 'package', 'description', 'keywords', and 'popularity' fields
148
+ for rows where the 'description' column contains the search text, limited by 'limit' if specified.
149
+
150
+ Example:
151
+ >>> search_by_description("data analysis", limit=5, markdown=True)
152
+ [
153
+ {
154
+ 'package': 'example-package',
155
+ 'description': 'A package for data analysis and visualization.',
156
+ 'keywords': 'data, analysis, visualization',
157
+ 'popularity': 'very popular'
158
+ },
159
+ ...
160
+ ]
161
+ """
162
+ # Validate 'text' input
163
+ if not isinstance(text, str) or not text.strip():
164
+ raise ValueError("The 'text' parameter must be a non-empty string.")
165
+
166
+ # Validate 'limit' parameter
167
+ if limit is not None and (not isinstance(limit, int) or limit <= 0):
168
+ raise ValueError("The 'limit' parameter must be a positive integer if specified.")
169
+
170
+ # Load the DataFrame
171
+ df = load_data()
172
+
173
+ # Perform case-insensitive full-text search in the 'description' column
174
+ mask = df['description'].str.contains(text, case=False, na=False)
175
+
176
+ # Filter the DataFrame with matching rows and select required columns
177
+ result_df = df[mask][['package', 'description', 'keywords', 'popularity']]
178
+
179
+ # Apply limit if specified
180
+ if limit is not None:
181
+ result_df = result_df.head(limit)
182
+
183
+ # Convert to a list of dictionaries
184
+ results = result_df.to_dict(orient='records')
185
+
186
+ # Print in markdown format if markdown is True
187
+ if markdown:
188
+ for i, row in enumerate(results, 1):
189
+ print(f"**{i}. {row['package']}**")
190
+ print(f"- **Description**: {row['description']}")
191
+ print(f"- **Keywords**: {row['keywords']}")
192
+ print(f"- **Popularity**: {row['popularity']}")
193
+ print("\n---\n")
194
+ else:
195
+ print(f"No matches found for the text '{text}'.")
196
+ return results
@@ -0,0 +1,6 @@
1
+ from datasets import load_dataset
2
+
3
+ def load_data():
4
+ dataset = load_dataset("yeniguno/pypi")["train"]
5
+ df = dataset.to_pandas()
6
+ return df
@@ -0,0 +1,194 @@
1
+ Metadata-Version: 2.1
2
+ Name: modulift
3
+ Version: 0.0.1
4
+ Summary: A powerful search tool for discovering Python packages based on user queries
5
+ Home-page: https://github.com/okanyenigun/modulift
6
+ Author: Okan Yenigün
7
+ Author-email: okanyenigun@gmail.com
8
+ License: MIT
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: Intended Audience :: Information Technology
13
+ Classifier: Intended Audience :: Education
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Classifier: Topic :: Software Development :: Documentation
16
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.7
20
+ Classifier: Programming Language :: Python :: 3.8
21
+ Classifier: Programming Language :: Python :: 3.9
22
+ Classifier: Programming Language :: Python :: 3.10
23
+ Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Operating System :: OS Independent
25
+ Requires-Python: >=3.7
26
+ Description-Content-Type: text/markdown
27
+ Provides-Extra: dev
28
+ Provides-Extra: test
29
+
30
+ # Modulift
31
+
32
+ **Modulift** is a powerful and efficient Python package designed to help developers, data scientists, and researchers explore and discover Python packages on PyPI based on specific keywords, package names, or full-text search within package descriptions. With a comprehensive dataset of PyPI packages, Modulift allows you to find relevant libraries for your project needs, making it an invaluable tool for anyone looking to streamline package selection and integration.
33
+
34
+ ## Key Features
35
+
36
+ - **Exact Package Name Search**: Retrieve detailed information on a specific package by name.
37
+ - **Keyword-Based Search**: Search packages by multiple keywords with flexible "or" and "and" logic to refine results.
38
+ - **Full-Text Description Search**: Locate packages by searching for specific phrases or content in their descriptions.
39
+ - **Markdown Output Option**: Print search results in Markdown format, ideal for documentation or presentations.
40
+
41
+ ## Installation
42
+
43
+ Install Modulift via pip:
44
+
45
+ ```bash
46
+ pip install modulift
47
+ ```
48
+
49
+ ## Usage
50
+
51
+ Modulift provides an easy-to-use API for searching and exploring Python packages. Here’s a quick guide on how to use its core features.
52
+
53
+ ### 1. Search by Package Name
54
+
55
+ Retrieve detailed information for a specific package by name:
56
+
57
+ ```python
58
+ import modulift as mf
59
+
60
+ result = mf.search_by_package_name("numpy")
61
+ print(result)
62
+ ```
63
+
64
+ **Output**:
65
+
66
+ ```python
67
+ {
68
+ 'package': 'numpy',
69
+ 'description': 'NumPy is the fundamental package for scientific computing with Python. It provides powerful N-dimensional arrays, sophisticated mathematical functions, tools for integrating C/C++ and Fortran code, and useful linear algebra, Fourier transform, and random number capabilities.',
70
+ 'keywords': 'scientific computing, array, linear algebra, Fourier transform, random number generation, data processing, numerical analysis',
71
+ 'popularity': 'very popular'
72
+ }
73
+ ```
74
+
75
+ For a different package:
76
+
77
+ ```python
78
+ result = mf.search_by_package_name("nullsweep")
79
+ print(result)
80
+ ```
81
+
82
+ **Output**:
83
+
84
+ ```python
85
+ {
86
+ 'package': 'nullsweep',
87
+ 'description': 'NullSweep is a Python library designed for detecting and handling patterns of missing data in pandas DataFrames. It provides a simple API to identify global missing data patterns across the entire dataset, patterns related to specific features within the dataset, and to impute missing values using various strategies.',
88
+ 'keywords': 'missing data, data imputation, pandas, pattern detection, feature-specific patterns',
89
+ 'popularity': 'popular'
90
+ }
91
+ ```
92
+
93
+ Markdown Output
94
+ To display the result in Markdown format:
95
+
96
+ ```python
97
+ result = mf.search_by_package_name("numpy", markdown=True)
98
+ ```
99
+
100
+ **Package**: numpy
101
+
102
+ - **Description**: NumPy is the fundamental package for scientific computing with Python. It provides powerful N-dimensional arrays, sophisticated mathematical functions, tools for integrating C/C++ and Fortran code, and useful linear algebra, Fourier transform, and random number capabilities.
103
+ - **Keywords**: scientific computing, array, linear algebra, Fourier transform, random number generation, data processing, numerical analysis
104
+ - **Popularity**: very popular
105
+
106
+ ### 2. Search by Keywords
107
+
108
+ Search for packages using one or more keywords. Modulift supports both "or" and "and" relations.
109
+
110
+ Single Keyword Search
111
+
112
+ ```python
113
+ result = mf.search_by_keywords("data science")
114
+ print(len(result))
115
+ ```
116
+
117
+ Output:
118
+
119
+ ```python
120
+ 3141 # Number of packages related to "data science"
121
+ ```
122
+
123
+ Multi-Keyword Search with "and" Relation
124
+
125
+ ```python
126
+ result = mf.search_by_keywords("data science", "machine learning", "deep learning", relation="and")
127
+ print(len(result))
128
+ ```
129
+
130
+ Output:
131
+
132
+ ```python
133
+ 115 # Number of packages related to all three keywords
134
+ ```
135
+
136
+ Limiting Results with Markdown Output
137
+
138
+ ```python
139
+ result = mf.search_by_keywords("data science", "machine learning", "deep learning", relation="and", limit=3, markdown=True)
140
+ ```
141
+
142
+ Markdown Output
143
+
144
+ **1. sagemaker**
145
+
146
+ - **Description**: The SageMaker Python SDK is an open-source library designed for training and deploying machine learning models on Amazon SageMaker. It supports popular deep learning frameworks like Apache MXNet and TensorFlow, as well as Amazon's own scalable algorithms optimized for SageMaker. Users can also deploy custom algorithms in Docker containers, making it versatile for various machine learning tasks.
147
+ - **Keywords**: machine learning, deep learning, model deployment, Amazon SageMaker, data science, AI, Docker
148
+ - **Popularity**: very popular
149
+
150
+ ---
151
+
152
+ **2. fastbook**
153
+
154
+ - **Description**: fastbook is a comprehensive resource for learning deep learning through practical coding examples using the fastai library and PyTorch. It is designed for coders of all backgrounds, providing accessible education on deep learning techniques and applications across various domains, including computer vision and natural language processing.
155
+ - **Keywords**: deep learning, fastai, PyTorch, computer vision, natural language processing, machine learning, data science, Jupyter Notebooks
156
+ - **Popularity**: very popular
157
+
158
+ ---
159
+
160
+ **3. ProAiLab**
161
+
162
+ - **Description**: ProAiLab is a Python library designed for building and deploying AI models. It provides tools for data preprocessing, model training, and evaluation, making it suitable for both beginners and experienced machine learning practitioners.
163
+ - **Keywords**: machine learning, AI, deep learning, data science, model development
164
+ - **Popularity**: popular
165
+
166
+ ### 3. Full-Text Search in Descriptions
167
+
168
+ Search for packages based on specific phrases within the description.
169
+
170
+ ```python
171
+ result = mf.search_by_description("training and deploying machine learning models on Amazon", markdown=True)
172
+ ```
173
+
174
+ Markdown Output
175
+
176
+ **1. sagemaker**
177
+
178
+ - **Description**: The SageMaker Python SDK is an open-source library designed for training and deploying machine learning models on Amazon SageMaker. It supports popular deep learning frameworks like Apache MXNet and TensorFlow, as well as Amazon's own scalable algorithms optimized for SageMaker. Users can also deploy custom algorithms in Docker containers, making it versatile for various machine learning tasks.
179
+ - **Keywords**: machine learning, deep learning, model deployment, Amazon SageMaker, data science, AI, Docker
180
+ - **Popularity**: very popular
181
+
182
+ ## License
183
+
184
+ Modulift is licensed under the MIT License. See [LICENSE](Licence.md) for more details.
185
+
186
+ ## Contributing
187
+
188
+ We welcome contributions to Modulift! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
189
+
190
+ ## Contact
191
+
192
+ For any questions or feedback, please contact the author:
193
+
194
+ - **Okan Yenigün** - [okanyenigun@gmail.com](mailto:okanyenigun@gmail.com)
@@ -0,0 +1,9 @@
1
+ setup.py
2
+ modulift/__init__.py
3
+ modulift/api.py
4
+ modulift/data.py
5
+ modulift.egg-info/PKG-INFO
6
+ modulift.egg-info/SOURCES.txt
7
+ modulift.egg-info/dependency_links.txt
8
+ modulift.egg-info/requires.txt
9
+ modulift.egg-info/top_level.txt
@@ -0,0 +1,7 @@
1
+ datasets==3.1.0
2
+
3
+ [dev]
4
+ twine==5.1.1
5
+
6
+ [test]
7
+ pytest==8.2.2
@@ -0,0 +1 @@
1
+ modulift
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,45 @@
1
+ from setuptools import setup, find_packages
2
+
3
+
4
+ with open("Readme.md", "r") as f:
5
+ long_description = f.read()
6
+
7
+
8
+ setup(
9
+ name="modulift",
10
+ version="0.0.1",
11
+ description="A powerful search tool for discovering Python packages based on user queries",
12
+ packages=find_packages(),
13
+ long_description=long_description,
14
+ long_description_content_type="text/markdown",
15
+ url="https://github.com/okanyenigun/modulift",
16
+ author="Okan Yenigün",
17
+ author_email="okanyenigun@gmail.com",
18
+ license="MIT",
19
+ classifiers=[
20
+ 'Development Status :: 3 - Alpha',
21
+ 'Intended Audience :: Developers',
22
+ 'Intended Audience :: Science/Research',
23
+ 'Intended Audience :: Information Technology',
24
+ 'Intended Audience :: Education',
25
+ 'Topic :: Software Development :: Libraries :: Python Modules',
26
+ 'Topic :: Software Development :: Documentation',
27
+ 'Topic :: Scientific/Engineering :: Information Analysis',
28
+ 'License :: OSI Approved :: MIT License',
29
+ 'Programming Language :: Python :: 3',
30
+ 'Programming Language :: Python :: 3.7',
31
+ 'Programming Language :: Python :: 3.8',
32
+ 'Programming Language :: Python :: 3.9',
33
+ 'Programming Language :: Python :: 3.10',
34
+ 'Programming Language :: Python :: 3.11',
35
+ 'Operating System :: OS Independent'
36
+ ],
37
+ install_requires=[
38
+ 'datasets==3.1.0'
39
+ ],
40
+ extras_require={
41
+ 'dev': ['twine==5.1.1'],
42
+ 'test': ['pytest==8.2.2']
43
+ },
44
+ python_requires='>=3.7',
45
+ )