PyDLLib 1.0__py3-none-any.whl

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.
Files changed (124) hide show
  1. DLL/Data/Metrics.py +626 -0
  2. DLL/Data/Preprocessing.py +384 -0
  3. DLL/Data/_DataReader.py +55 -0
  4. DLL/Data/__init__.py +1 -0
  5. DLL/DeepLearning/Callbacks/_BackUp.py +71 -0
  6. DLL/DeepLearning/Callbacks/_BaseCallback.py +43 -0
  7. DLL/DeepLearning/Callbacks/_EarlyStopping.py +102 -0
  8. DLL/DeepLearning/Callbacks/_ReduceLROnPlateau.py +90 -0
  9. DLL/DeepLearning/Callbacks/__init__.py +4 -0
  10. DLL/DeepLearning/Initialisers/_Initialiser.py +24 -0
  11. DLL/DeepLearning/Initialisers/_Kaiming_He.py +55 -0
  12. DLL/DeepLearning/Initialisers/_Xavier_Glorot.py +39 -0
  13. DLL/DeepLearning/Initialisers/__init__.py +2 -0
  14. DLL/DeepLearning/Layers/Activations/_Activation.py +23 -0
  15. DLL/DeepLearning/Layers/Activations/_ReLU.py +51 -0
  16. DLL/DeepLearning/Layers/Activations/_Sigmoid.py +51 -0
  17. DLL/DeepLearning/Layers/Activations/_SoftMax.py +83 -0
  18. DLL/DeepLearning/Layers/Activations/_Tanh.py +47 -0
  19. DLL/DeepLearning/Layers/Activations/__init__.py +4 -0
  20. DLL/DeepLearning/Layers/Regularisation/_BaseRegularisation.py +12 -0
  21. DLL/DeepLearning/Layers/Regularisation/_BatchNormalisation.py +106 -0
  22. DLL/DeepLearning/Layers/Regularisation/_Dropout.py +79 -0
  23. DLL/DeepLearning/Layers/Regularisation/_GroupNormalisation.py +112 -0
  24. DLL/DeepLearning/Layers/Regularisation/_InstanceNormalisation.py +50 -0
  25. DLL/DeepLearning/Layers/Regularisation/_LayerNormalisation.py +37 -0
  26. DLL/DeepLearning/Layers/Regularisation/__init__.py +5 -0
  27. DLL/DeepLearning/Layers/_Add.py +109 -0
  28. DLL/DeepLearning/Layers/_Attention.py +161 -0
  29. DLL/DeepLearning/Layers/_BaseLayer.py +87 -0
  30. DLL/DeepLearning/Layers/_Bidirectional.py +113 -0
  31. DLL/DeepLearning/Layers/_Conv2D.py +133 -0
  32. DLL/DeepLearning/Layers/_Dense.py +109 -0
  33. DLL/DeepLearning/Layers/_DenseKAN.py +184 -0
  34. DLL/DeepLearning/Layers/_Flatten.py +55 -0
  35. DLL/DeepLearning/Layers/_Identity.py +50 -0
  36. DLL/DeepLearning/Layers/_Input.py +11 -0
  37. DLL/DeepLearning/Layers/_LSTM.py +261 -0
  38. DLL/DeepLearning/Layers/_LayerList.py +98 -0
  39. DLL/DeepLearning/Layers/_MaxPooling2D.py +101 -0
  40. DLL/DeepLearning/Layers/_RNN.py +185 -0
  41. DLL/DeepLearning/Layers/_Reshape.py +52 -0
  42. DLL/DeepLearning/Layers/__init__.py +14 -0
  43. DLL/DeepLearning/Losses/_BCE.py +96 -0
  44. DLL/DeepLearning/Losses/_BaseLoss.py +18 -0
  45. DLL/DeepLearning/Losses/_CCE.py +87 -0
  46. DLL/DeepLearning/Losses/_Exponential.py +101 -0
  47. DLL/DeepLearning/Losses/_Huber.py +104 -0
  48. DLL/DeepLearning/Losses/_MAE.py +85 -0
  49. DLL/DeepLearning/Losses/_MSE.py +86 -0
  50. DLL/DeepLearning/Losses/__init__.py +6 -0
  51. DLL/DeepLearning/Model.py +265 -0
  52. DLL/DeepLearning/Optimisers/_ADADELTA.py +53 -0
  53. DLL/DeepLearning/Optimisers/_ADAGRAD.py +51 -0
  54. DLL/DeepLearning/Optimisers/_ADAM.py +65 -0
  55. DLL/DeepLearning/Optimisers/_BaseOptimiser.py +20 -0
  56. DLL/DeepLearning/Optimisers/_LBFGS.py +120 -0
  57. DLL/DeepLearning/Optimisers/_RMSPROP.py +62 -0
  58. DLL/DeepLearning/Optimisers/_SGD.py +44 -0
  59. DLL/DeepLearning/Optimisers/__init__.py +6 -0
  60. DLL/DeepLearning/__init__.py +0 -0
  61. DLL/Exceptions/_Exceptions.py +19 -0
  62. DLL/Exceptions/__init__.py +2 -0
  63. DLL/MachineLearning/SupervisedLearning/Calibration/_CalibratedClassifier.py +88 -0
  64. DLL/MachineLearning/SupervisedLearning/Calibration/_IsotonicRegression.py +114 -0
  65. DLL/MachineLearning/SupervisedLearning/Calibration/__init__.py +2 -0
  66. DLL/MachineLearning/SupervisedLearning/GaussianProcesses/_GaussianProcessRegressor.py +190 -0
  67. DLL/MachineLearning/SupervisedLearning/GaussianProcesses/__init__.py +1 -0
  68. DLL/MachineLearning/SupervisedLearning/Kernels.py +851 -0
  69. DLL/MachineLearning/SupervisedLearning/LinearModels/TimeSeries.py +147 -0
  70. DLL/MachineLearning/SupervisedLearning/LinearModels/_Elasticnet.py +161 -0
  71. DLL/MachineLearning/SupervisedLearning/LinearModels/_LassoRegression.py +157 -0
  72. DLL/MachineLearning/SupervisedLearning/LinearModels/_LinearRegression.py +81 -0
  73. DLL/MachineLearning/SupervisedLearning/LinearModels/_LogisticRegression.py +182 -0
  74. DLL/MachineLearning/SupervisedLearning/LinearModels/_RANSAC.py +97 -0
  75. DLL/MachineLearning/SupervisedLearning/LinearModels/_RidgeRegression.py +78 -0
  76. DLL/MachineLearning/SupervisedLearning/LinearModels/__init__.py +6 -0
  77. DLL/MachineLearning/SupervisedLearning/NaiveBayes/_BernoulliNaiveBayes.py +115 -0
  78. DLL/MachineLearning/SupervisedLearning/NaiveBayes/_GaussianNaiveBayes.py +111 -0
  79. DLL/MachineLearning/SupervisedLearning/NaiveBayes/_MultinomialNaiveBayes.py +115 -0
  80. DLL/MachineLearning/SupervisedLearning/NaiveBayes/__init__.py +3 -0
  81. DLL/MachineLearning/SupervisedLearning/Neighbors/_KNearestNeighborsClassifier.py +115 -0
  82. DLL/MachineLearning/SupervisedLearning/Neighbors/_KNearestNeighborsRegressor.py +90 -0
  83. DLL/MachineLearning/SupervisedLearning/Neighbors/__init__.py +2 -0
  84. DLL/MachineLearning/SupervisedLearning/SupportVectorMachines/_SVC.py +293 -0
  85. DLL/MachineLearning/SupervisedLearning/SupportVectorMachines/_SVR.py +100 -0
  86. DLL/MachineLearning/SupervisedLearning/SupportVectorMachines/__init__.py +2 -0
  87. DLL/MachineLearning/SupervisedLearning/Trees/_AdaBoostClassifier.py +179 -0
  88. DLL/MachineLearning/SupervisedLearning/Trees/_AdaBoostRegressor.py +141 -0
  89. DLL/MachineLearning/SupervisedLearning/Trees/_DecisionTree.py +219 -0
  90. DLL/MachineLearning/SupervisedLearning/Trees/_GradientBoostingClassifier.py +207 -0
  91. DLL/MachineLearning/SupervisedLearning/Trees/_GradientBoostingRegressor.py +122 -0
  92. DLL/MachineLearning/SupervisedLearning/Trees/_LGBMClassifier.py +288 -0
  93. DLL/MachineLearning/SupervisedLearning/Trees/_LGBMRegressor.py +168 -0
  94. DLL/MachineLearning/SupervisedLearning/Trees/_LGBMTree.py +199 -0
  95. DLL/MachineLearning/SupervisedLearning/Trees/_RandomForest.py +96 -0
  96. DLL/MachineLearning/SupervisedLearning/Trees/_RegressionForest.py +75 -0
  97. DLL/MachineLearning/SupervisedLearning/Trees/_RegressionTree.py +148 -0
  98. DLL/MachineLearning/SupervisedLearning/Trees/_XGBoostClassifier.py +239 -0
  99. DLL/MachineLearning/SupervisedLearning/Trees/_XGBoostRegressor.py +131 -0
  100. DLL/MachineLearning/SupervisedLearning/Trees/_XGBoostTree.py +105 -0
  101. DLL/MachineLearning/SupervisedLearning/Trees/__init__.py +12 -0
  102. DLL/MachineLearning/SupervisedLearning/__init__.py +0 -0
  103. DLL/MachineLearning/UnsupervisedLearning/Clustering/_DBScan.py +87 -0
  104. DLL/MachineLearning/UnsupervisedLearning/Clustering/_GaussianMixtureModels.py +121 -0
  105. DLL/MachineLearning/UnsupervisedLearning/Clustering/_KMeans.py +120 -0
  106. DLL/MachineLearning/UnsupervisedLearning/Clustering/_SpectralClustering.py +105 -0
  107. DLL/MachineLearning/UnsupervisedLearning/Clustering/__init__.py +4 -0
  108. DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_LDA.py +118 -0
  109. DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_PCA.py +101 -0
  110. DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_QDA.py +69 -0
  111. DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_RobustPCA.py +143 -0
  112. DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_TSNE.py +151 -0
  113. DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_UMAP.py +176 -0
  114. DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/__init__.py +6 -0
  115. DLL/MachineLearning/UnsupervisedLearning/OutlierDetection/_IsolationForest.py +175 -0
  116. DLL/MachineLearning/UnsupervisedLearning/OutlierDetection/__init__.py +1 -0
  117. DLL/MachineLearning/UnsupervisedLearning/__init__.py +0 -0
  118. DLL/MachineLearning/__init__.py +0 -0
  119. DLL/__init__.py +0 -0
  120. pydllib-1.0.dist-info/METADATA +104 -0
  121. pydllib-1.0.dist-info/RECORD +124 -0
  122. pydllib-1.0.dist-info/WHEEL +5 -0
  123. pydllib-1.0.dist-info/licenses/LICENSE +21 -0
  124. pydllib-1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,175 @@
1
+ import torch
2
+ from math import log
3
+
4
+ from ...SupervisedLearning.Trees._DecisionTree import Node
5
+ from ....Exceptions import NotFittedError
6
+
7
+
8
+ class IsolationForest:
9
+ """
10
+ IsolationForest implements an algorithm to detect outliers in the data by fitting may isolation trees to the data.
11
+
12
+ Args:
13
+ n_trees (int, optional): The number of trees used for predictiong. Defaults to 10. Must be a positive integer.
14
+ max_depth (int, optional): The maximum depth of the tree. Defaults to 10. Must be a positive integer.
15
+ min_samples_split (int, optional): The minimum required samples in a leaf to make a split. Defaults to 2. Must be a positive integer.
16
+ bootstrap (bool, optional): Determines if the samples for fitting are boostrapped from the given data. Must be a boolean. Defaults to False.
17
+ threshold (int | float, optional): Determines how many standard deviations away from the mean score a datapoint must be to be considered an outlier. Must be a non-ngeative real number. Defaults to 4.
18
+ """
19
+ def __init__(self, n_trees=10, max_depth=25, min_samples_split=2, bootstrap=False, threshold=4):
20
+ if not isinstance(n_trees, int) or n_trees < 1:
21
+ raise ValueError("n_trees must be a positive integer.")
22
+ if not isinstance(max_depth, int) or max_depth < 1:
23
+ raise ValueError("max_depth must be a positive integer.")
24
+ if not isinstance(min_samples_split, int) or min_samples_split < 1:
25
+ raise ValueError("min_samples_split must be a positive integer.")
26
+ if not isinstance(bootstrap, bool):
27
+ raise TypeError("bootstrap must be a boolean.")
28
+ if not isinstance(threshold, int | float) or threshold < 0:
29
+ raise ValueError("threshold must be a non-negative real number.")
30
+
31
+ self.n_trees = n_trees
32
+ self.max_depth = max_depth
33
+ self.min_samples_split = min_samples_split
34
+ self.bootstrap = bootstrap
35
+ self.threshold = threshold
36
+ self.trees = [IsolationTree(max_depth, min_samples_split) for _ in range(n_trees)]
37
+
38
+ def fit(self, X):
39
+ """
40
+ Fits the IsolationTree model to the input data by generating a tree, which splits the data randomly.
41
+
42
+ Args:
43
+ X (torch.Tensor of shape (n_samples, n_features)): The input data, where each row is a sample and each column is a feature.
44
+ Returns:
45
+ None
46
+ Raises:
47
+ TypeError: If the input matrix is not a PyTorch tensor.
48
+ ValueError: If the input matrix is not the correct shape.
49
+ """
50
+ if not isinstance(X, torch.Tensor):
51
+ raise TypeError("The input matrix must be a PyTorch tensor.")
52
+ if X.ndim != 2:
53
+ raise ValueError("The input matrix must be a 2 dimensional tensor.")
54
+
55
+ for tree in self.trees:
56
+ _X = self._bootstrap_sample(X) if self.bootstrap else X
57
+ tree.fit(_X)
58
+
59
+ def _bootstrap_sample(self, x):
60
+ indices = torch.randint(high=len(x), size=(len(x),))
61
+ return x[indices]
62
+
63
+ def predict(self, X, return_scores=False):
64
+ """
65
+ Predicts the outliers in the input by considering scores, which are threshold standard deviations away from the mean.
66
+
67
+ Args:
68
+ X (torch.Tensor of shape (n_samples, n_features)): The input data, where each row is a sample and each column is a feature.
69
+ return_scores (bool, optional): Determines if the scores of each datapoint are returned. Defaults to False.
70
+ """
71
+ if not isinstance(X, torch.Tensor):
72
+ raise TypeError("The input matrix must be a PyTorch tensor.")
73
+ if X.ndim != 2:
74
+ raise ValueError("The input matrix must be a 2 dimensional tensor.")
75
+ if not isinstance(return_scores, bool):
76
+ raise TypeError("return_scores must be a boolean.")
77
+
78
+ scores = torch.zeros((self.n_trees, len(X)))
79
+ for i, tree in enumerate(self.trees):
80
+ tree_scores = torch.tensor([tree._path_length(point, tree.root) for point in X])
81
+ scores[i] = tree_scores
82
+ scores = 2 ** -(torch.mean(scores, dim=0) / self._c(len(X)))
83
+ if return_scores: return scores
84
+
85
+ threshold = torch.mean(scores) + self.threshold * torch.std(scores)
86
+ return scores > threshold
87
+
88
+ def fit_predict(self, X, return_scores=False):
89
+ """
90
+ First fits the model to the input and then predicts, which of the inputs are outliers.
91
+
92
+ Args:
93
+ X (torch.Tensor of shape (n_samples, n_features)): The input data, where each row is a sample and each column is a feature.
94
+ return_scores (bool, optional): Determines if the scores of each datapoint are returned. Defaults to False.
95
+ """
96
+ self.fit(X)
97
+ return self.predict(X, return_scores=return_scores)
98
+
99
+ def _c(self, n):
100
+ return 2 * (log(n - 1) + 0.5772156649) - (2 * (n - 1) / n)
101
+
102
+
103
+ class IsolationTree:
104
+ """
105
+ IsolationTree implements an algorithm to detect outliers in the data.
106
+
107
+ Args:
108
+ max_depth (int, optional): The maximum depth of the tree. Defaults to 25. Must be a positive integer.
109
+ min_samples_split (int, optional): The minimum required samples in a leaf to make a split. Defaults to 2. Must be a positive integer.
110
+ """
111
+ def __init__(self, max_depth=25, min_samples_split=2):
112
+ if not isinstance(max_depth, int) or max_depth < 1:
113
+ raise ValueError("max_depth must be a positive integer.")
114
+ if not isinstance(min_samples_split, int) or min_samples_split < 1:
115
+ raise ValueError("min_samples_split must be a positive integer.")
116
+
117
+ self.max_depth = max_depth
118
+ self.min_samples_split = min_samples_split
119
+ self.root = None
120
+
121
+ def fit(self, X):
122
+ """
123
+ Fits the IsolationTree model to the input data by generating a tree, which splits the data randomly.
124
+
125
+ Args:
126
+ X (torch.Tensor of shape (n_samples, n_features)): The input data, where each row is a sample and each column is a feature.
127
+ Returns:
128
+ None
129
+ Raises:
130
+ TypeError: If the input matrix is not a PyTorch tensor.
131
+ ValueError: If the input matrix is not the correct shape.
132
+ """
133
+ if not isinstance(X, torch.Tensor):
134
+ raise TypeError("The input matrix must be a PyTorch tensor.")
135
+ if X.ndim != 2:
136
+ raise ValueError("The input matrix must be a 2 dimensional tensor.")
137
+ self.n_features = X.shape[1]
138
+ self.root = self._grow_tree(X, 0)
139
+
140
+ def _grow_tree(self, x, depth):
141
+ self.n_samples, n_features = x.size()
142
+
143
+ if depth >= self.max_depth or self.n_samples < self.min_samples_split:
144
+ return Node(size=self.n_samples, depth=depth)
145
+
146
+ split_threshold, split_index = self._random_split(x)
147
+ if split_threshold is None:
148
+ return Node(size=self.n_samples, depth=depth)
149
+
150
+ left_indicies, right_indicies = self._split(x[:, split_index], split_threshold)
151
+ left = self._grow_tree(x[left_indicies], depth + 1)
152
+ right = self._grow_tree(x[right_indicies], depth + 1)
153
+ return Node(left, right, split_threshold, split_index)
154
+
155
+ def _random_split(self, x):
156
+ split_index = torch.randint(x.shape[1], size=tuple())
157
+ feature_min, feature_max = torch.min(x[:, split_index]), torch.max(x[:, split_index])
158
+ if feature_min == feature_max:
159
+ return None, None
160
+
161
+ split_threshold = (feature_max - feature_min) * torch.rand(size=tuple()) + feature_min
162
+ return split_threshold, split_index
163
+
164
+ def _split(self, feature_values, threshold):
165
+ left_indicies = torch.argwhere(feature_values <= threshold).flatten()
166
+ right_indicies = torch.argwhere(feature_values > threshold).flatten()
167
+ return left_indicies, right_indicies
168
+
169
+ def _path_length(self, point, current_node):
170
+ if current_node.depth is not None:
171
+ return current_node.depth
172
+
173
+ if point[current_node.feature_index] <= current_node.threshold:
174
+ return self._path_length(point, current_node.left)
175
+ return self._path_length(point, current_node.right)
@@ -0,0 +1 @@
1
+ from ._IsolationForest import IsolationForest
File without changes
File without changes
DLL/__init__.py ADDED
File without changes
@@ -0,0 +1,104 @@
1
+ Metadata-Version: 2.4
2
+ Name: PyDLLib
3
+ Version: 1.0
4
+ Summary: A deep and machine learning library. Made for learning purposes and ease of understanding.
5
+ Author-email: Aatu Selkee <aatu.selkee@gmail.com>
6
+ Project-URL: Homepage, https://naapeli.github.io/deep-learning-library/index.html
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >=3.11.9
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: absl-py==2.2.0
14
+ Requires-Dist: astunparse==1.6.3
15
+ Requires-Dist: certifi==2025.1.31
16
+ Requires-Dist: charset-normalizer==3.4.1
17
+ Requires-Dist: cloudpickle==3.1.1
18
+ Requires-Dist: contourpy==1.3.1
19
+ Requires-Dist: cvxopt==1.3.2
20
+ Requires-Dist: cycler==0.12.1
21
+ Requires-Dist: Farama-Notifications==0.0.4
22
+ Requires-Dist: filelock==3.18.0
23
+ Requires-Dist: flatbuffers==25.2.10
24
+ Requires-Dist: fonttools==4.56.0
25
+ Requires-Dist: fsspec==2025.3.0
26
+ Requires-Dist: gast==0.6.0
27
+ Requires-Dist: google-pasta==0.2.0
28
+ Requires-Dist: grpcio==1.71.0
29
+ Requires-Dist: gymnasium==1.1.1
30
+ Requires-Dist: h5py==3.13.0
31
+ Requires-Dist: idna==3.10
32
+ Requires-Dist: Jinja2==3.1.6
33
+ Requires-Dist: joblib==1.4.2
34
+ Requires-Dist: keras==3.9.0
35
+ Requires-Dist: kiwisolver==1.4.8
36
+ Requires-Dist: libclang==18.1.1
37
+ Requires-Dist: Markdown==3.7
38
+ Requires-Dist: markdown-it-py==3.0.0
39
+ Requires-Dist: MarkupSafe==3.0.2
40
+ Requires-Dist: matplotlib==3.10.1
41
+ Requires-Dist: mdurl==0.1.2
42
+ Requires-Dist: ml_dtypes==0.5.1
43
+ Requires-Dist: mpmath==1.3.0
44
+ Requires-Dist: namex==0.0.8
45
+ Requires-Dist: networkx==3.4.2
46
+ Requires-Dist: numpy==2.1.3
47
+ Requires-Dist: opt_einsum==3.4.0
48
+ Requires-Dist: optree==0.14.1
49
+ Requires-Dist: packaging==24.2
50
+ Requires-Dist: pandas==2.2.3
51
+ Requires-Dist: patsy==1.0.1
52
+ Requires-Dist: pillow==11.1.0
53
+ Requires-Dist: protobuf==5.29.4
54
+ Requires-Dist: Pygments==2.19.1
55
+ Requires-Dist: pyparsing==3.2.3
56
+ Requires-Dist: python-dateutil==2.9.0.post0
57
+ Requires-Dist: pytz==2025.2
58
+ Requires-Dist: requests==2.32.3
59
+ Requires-Dist: rich==13.9.4
60
+ Requires-Dist: SciencePlots==2.1.1
61
+ Requires-Dist: scikit-learn==1.6.1
62
+ Requires-Dist: scipy==1.15.2
63
+ Requires-Dist: six==1.17.0
64
+ Requires-Dist: statsmodels==0.14.4
65
+ Requires-Dist: sympy==1.13.1
66
+ Requires-Dist: tensorboard==2.19.0
67
+ Requires-Dist: tensorboard-data-server==0.7.2
68
+ Requires-Dist: tensorflow==2.19.0
69
+ Requires-Dist: tensorflow-io-gcs-filesystem==0.31.0
70
+ Requires-Dist: termcolor==2.5.0
71
+ Requires-Dist: threadpoolctl==3.6.0
72
+ Requires-Dist: torch==2.6.0
73
+ Requires-Dist: typing_extensions==4.13.0
74
+ Requires-Dist: tzdata==2025.2
75
+ Requires-Dist: urllib3==2.3.0
76
+ Requires-Dist: Werkzeug==3.1.3
77
+ Requires-Dist: wrapt==1.17.2
78
+ Dynamic: license-file
79
+
80
+ # DLL (Deep Learning Library)
81
+
82
+ DLL is a deep learning library inspired by TensorFlow and PyTorch. This is my largest project to date, featuring thousands of lines of code. It encompasses a wide range of deep learning and machine learning methods, and includes numerous examples and tests to demonstrate their usage. Feel free to explore the source code and experiment with the models using the documentation.
83
+
84
+ ## Documentation:
85
+
86
+ Checkout the documentation of DLL [here](https://naapeli.github.io/deep-learning-library/).
87
+
88
+ ## Upcoming topics:
89
+
90
+ - embedding layer
91
+ - concatenate layer
92
+ - multi headed cross attention
93
+ - hyperparameter tuning with grid search and random search
94
+ - multiclass classification with OvO and OvR
95
+
96
+ ## Running Tests
97
+
98
+ To run the tests, navigate to the deep-learning-library-folder and use eg. the following command:
99
+
100
+ ```
101
+ python -m Tests.ReinforcementLearning.DeepReinforcementLearning
102
+ ```
103
+
104
+ Feel free to explore the code and apply it to new problems!
@@ -0,0 +1,124 @@
1
+ DLL/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ DLL/Data/Metrics.py,sha256=jZeqx4Rpuoo5RyNJmI2054VgZK3fx3GLJXmrYMzFq5c,31396
3
+ DLL/Data/Preprocessing.py,sha256=hY9wiGQ8AB0Ukz9a0dZdEQ7YUb2EQtn7iH3_3XM1T9o,15446
4
+ DLL/Data/_DataReader.py,sha256=F34DkMnILfRMX8ND3tbFFInBvkoN9jv0htQv5ZLjoPw,2659
5
+ DLL/Data/__init__.py,sha256=aM9zf9uLSy67BZz8aYDpFBJ9zX61I6qnEsCKcOdtvkg,37
6
+ DLL/DeepLearning/Model.py,sha256=GfL1hsf6CJkb10lXY622NbBmmcSfUrotPsBpqk3KMHY,14044
7
+ DLL/DeepLearning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ DLL/DeepLearning/Callbacks/_BackUp.py,sha256=QOl8lJUwVB9qVs75wIW1to7hsUxT-bQg6IJ5t_Li4pY,2985
9
+ DLL/DeepLearning/Callbacks/_BaseCallback.py,sha256=DzmdBu5C-_dQt8FESII5elkPtAYRygUI-ORkYbQIvf8,1126
10
+ DLL/DeepLearning/Callbacks/_EarlyStopping.py,sha256=GkOdcKj1L97reUkHzLvttsLl6_hk0QZ6ItUWmEP3Y04,4857
11
+ DLL/DeepLearning/Callbacks/_ReduceLROnPlateau.py,sha256=zFXv2K9DklyLEl-se_SH99BD-JSzp4AoRcUyN5wAoDA,4525
12
+ DLL/DeepLearning/Callbacks/__init__.py,sha256=9gD1vDlDjJAErVWp3eTxrAjNL1OtXamXLnyEwLMQsaI,160
13
+ DLL/DeepLearning/Initialisers/_Initialiser.py,sha256=ZZ6Q1Va4vMSHXf-P8SSIFJE2K1jAm4eRzhx9G5hwOD4,747
14
+ DLL/DeepLearning/Initialisers/_Kaiming_He.py,sha256=BNYDkuofVbvsNPMKjYIkME2D3yOQgqoVxHr6TonKGto,3148
15
+ DLL/DeepLearning/Initialisers/_Xavier_Glorot.py,sha256=L1WVYd5viAFmkbTeIwwXTCvdsytt4flTbrf6o18_l2I,2211
16
+ DLL/DeepLearning/Initialisers/__init__.py,sha256=w9EZQTOtsVGFMZ2lvqcuZ3I74WO9IqIUuV4yuotd_mA,117
17
+ DLL/DeepLearning/Layers/_Add.py,sha256=sIrlFKrgwsM943G8nURVW4N99y8Iv5-3wNqN8Pnr4_M,5682
18
+ DLL/DeepLearning/Layers/_Attention.py,sha256=nbdNvreMomnaTmv7YE7Z64rVQB-jxjCN97wakSAJzlg,9391
19
+ DLL/DeepLearning/Layers/_BaseLayer.py,sha256=nWi9h399Ro-Oaw_ij5ilZ9jswa4cyBirWws9LichCD8,4430
20
+ DLL/DeepLearning/Layers/_Bidirectional.py,sha256=Iuck5oo8cGPFbVNbJHNsMKX7N8ehiJiFXnwtsyZT8hE,5703
21
+ DLL/DeepLearning/Layers/_Conv2D.py,sha256=_w8GMR0EM83kNbFtXmqp7mI3alv1DIhNOv7sI2DKyJE,7919
22
+ DLL/DeepLearning/Layers/_Dense.py,sha256=qGdcWOkgnXc9A7PV6UKL_SPVfznfiUYhIusloM58zQc,6377
23
+ DLL/DeepLearning/Layers/_DenseKAN.py,sha256=Kw_9wYv2wHjR5wpnfLuPvMURQylV9bQ_EJvDftlWJX4,10720
24
+ DLL/DeepLearning/Layers/_Flatten.py,sha256=MWZUWjpuv3dthOcJ58W8OppeIGO4txWNHoMiccBSKJg,2127
25
+ DLL/DeepLearning/Layers/_Identity.py,sha256=kSK8KrJrMmvRM7YR1qI2XCweNS2MCvxPTxO0boGYMSQ,1778
26
+ DLL/DeepLearning/Layers/_Input.py,sha256=8WK2FM1qLevKCMLY8qQzyFfPr4uYWTP3DPW-1FGw8_g,434
27
+ DLL/DeepLearning/Layers/_LSTM.py,sha256=p6PmbBE_QPQgxLkKq61Wuf_LOuB4kTulysaoJKER5pA,16487
28
+ DLL/DeepLearning/Layers/_LayerList.py,sha256=fe5sv1MVZD625JncxsC3TlHcVZ2bdE_uh7R2zwWeHdo,4178
29
+ DLL/DeepLearning/Layers/_MaxPooling2D.py,sha256=O8f8-aL9C_9btaIgMv5by-WwuyZmbmzMoDYXQZetQ2A,5288
30
+ DLL/DeepLearning/Layers/_RNN.py,sha256=eBR21e9WPZpH1N-vAjES-pzrMbyaR_nHLN2P6f9hhMk,12085
31
+ DLL/DeepLearning/Layers/_Reshape.py,sha256=mSx_1JprBVl9_yZSJQr3H1a7XtEs-KBzWGTmin60Lok,2099
32
+ DLL/DeepLearning/Layers/__init__.py,sha256=2oaAv5-dng5WGrq_ZlhS1xt3A9piPxb4bwa7CrsgZVI,445
33
+ DLL/DeepLearning/Layers/Activations/_Activation.py,sha256=q1M4dwBxQtZLZ6hXwNWPzO-NqG7uyl0n1uPw15grB4E,959
34
+ DLL/DeepLearning/Layers/Activations/_ReLU.py,sha256=Fnmq2twFFTxnLZPgYsgcZkQQAvYeZom66Ws9Z8jFveo,1853
35
+ DLL/DeepLearning/Layers/Activations/_Sigmoid.py,sha256=15UB_Lq0_kINQDivYxi9vJ8piRSMKhzK2-CsxuLEV5I,1801
36
+ DLL/DeepLearning/Layers/Activations/_SoftMax.py,sha256=0HKrFqi6XL6aadYUsjWfCCiLgzKHH8IlV5IKzMy12ZU,4140
37
+ DLL/DeepLearning/Layers/Activations/_Tanh.py,sha256=GGeoDxfYHQjMqFvS7uheTHo4AgoIGiDrBH8KmMPiZgA,1701
38
+ DLL/DeepLearning/Layers/Activations/__init__.py,sha256=fpwoiFsFq4RlqFw15JVWfvmLi6GC6i15jXkPeQENuSs,112
39
+ DLL/DeepLearning/Layers/Regularisation/_BaseRegularisation.py,sha256=SM9f2XHf6H-JJvOQ4n6O9uqEe2-h3DBf8zf0AZeAO9w,603
40
+ DLL/DeepLearning/Layers/Regularisation/_BatchNormalisation.py,sha256=L-OPrAuHMLAfTLPx_XeQ0c57l8-e1B-XbtNJdncN68g,5168
41
+ DLL/DeepLearning/Layers/Regularisation/_Dropout.py,sha256=98GR38CSIgU-WXoZxDUxxmRuov0gXc-PGLvt9OJ1V8s,3249
42
+ DLL/DeepLearning/Layers/Regularisation/_GroupNormalisation.py,sha256=zYzzm9nvZg2XVvbK4-DQnWLavIFWp1CGDKxChzLBJVM,5888
43
+ DLL/DeepLearning/Layers/Regularisation/_InstanceNormalisation.py,sha256=DQcHue_LGkrf3uod6AFP15whUV741VIhLm1qEGq_3eY,2459
44
+ DLL/DeepLearning/Layers/Regularisation/_LayerNormalisation.py,sha256=YrTLzzlDXxUWzldpYy16AduQ5NaaYNg9EBjsZ3U71pE,1807
45
+ DLL/DeepLearning/Layers/Regularisation/__init__.py,sha256=WQfJUbJd071aQH18oPyRgcRtz2pBEb9207xD-S1XOrg,213
46
+ DLL/DeepLearning/Losses/_BCE.py,sha256=dFAkI2NxBwoJMud5i5wObYhY185fVhe_aiVd4okXaLo,4759
47
+ DLL/DeepLearning/Losses/_BaseLoss.py,sha256=t5Q-j1uHneZDhYF2IJ9rsYasq_p2QBt0QHLJF3r1g3k,359
48
+ DLL/DeepLearning/Losses/_CCE.py,sha256=GRA9GJfoyVfKtzzvgZjCz9arWZGXbw-R-vY8t2aPlu0,3994
49
+ DLL/DeepLearning/Losses/_Exponential.py,sha256=QLXryoFateUUk8Vi-Gxcfqt-3g52LHlfbbUAIBT2M9k,4578
50
+ DLL/DeepLearning/Losses/_Huber.py,sha256=yjwpBh7DCmUKfy-txdmalkLWH7U4PD57nCPmp6_l1Qg,5060
51
+ DLL/DeepLearning/Losses/_MAE.py,sha256=OkR8ihfc2dl9oSyCC62KWklAV73Il93H0y8RBBMFovk,3658
52
+ DLL/DeepLearning/Losses/_MSE.py,sha256=dviZHjpp9L-hxLUQbovbWiJjjXAnZcUpn-osdT0SCMw,3743
53
+ DLL/DeepLearning/Losses/__init__.py,sha256=PjQQRMtOkvCqYCRi64dqDgTdeYglCiAa6jgIzvNOy3I,158
54
+ DLL/DeepLearning/Optimisers/_ADADELTA.py,sha256=QCeml9J1SA4f4yEDneg8ZH2W3a1gsjELCZhcmqsI8IM,2779
55
+ DLL/DeepLearning/Optimisers/_ADAGRAD.py,sha256=yn4VHtHmYD2Chw73RPL7vGirbJclftPeN3ZN2e9Fct8,2511
56
+ DLL/DeepLearning/Optimisers/_ADAM.py,sha256=GcZyx7g5jZKehGMTjAln5k6Rq0yKQJlxVmMNQzwF7tI,3755
57
+ DLL/DeepLearning/Optimisers/_BaseOptimiser.py,sha256=KxRrw97_F20THryjCPfmw-sfyYeNU8GydMIxUFpET8g,411
58
+ DLL/DeepLearning/Optimisers/_LBFGS.py,sha256=msw8mtE_z2gGPIXmIFSkDDB0nt1H7iDfMZrgtozCmA4,5621
59
+ DLL/DeepLearning/Optimisers/_RMSPROP.py,sha256=SeR0LCrcimzBBLEEh-R04xhIpsynLODLU6lfnQIkVUA,3532
60
+ DLL/DeepLearning/Optimisers/_SGD.py,sha256=bBGyXq2ehBlLTbsFtykelYMv_KS7TEgQJnjJ99WMO5s,2017
61
+ DLL/DeepLearning/Optimisers/__init__.py,sha256=lsSvZ2xtDeEew6sMZYZVZANDldydWTNRbqeMXYNJtG4,170
62
+ DLL/Exceptions/_Exceptions.py,sha256=EVc9E3lCf2_5WKfVDuNhg97Yn32w_IVyfWIfpGQKiQI,586
63
+ DLL/Exceptions/__init__.py,sha256=mgWiYJP9_Ud-9z2Utex3FOTVca3tlog2IOSdBt-7Cig,84
64
+ DLL/MachineLearning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ DLL/MachineLearning/SupervisedLearning/Kernels.py,sha256=HuVRjehn_7PLml083FLyQeqdVVHy6guA1jKzImGQaxc,41476
66
+ DLL/MachineLearning/SupervisedLearning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
+ DLL/MachineLearning/SupervisedLearning/Calibration/_CalibratedClassifier.py,sha256=Fl5SLzODbCqFzImMl56Nev2Qvd0rSdkc2VcnMjKmV3o,4839
68
+ DLL/MachineLearning/SupervisedLearning/Calibration/_IsotonicRegression.py,sha256=yrZHDhq2TKerb3fn1WeP7oThBE0ZIAVIzOsM2wjda0A,4645
69
+ DLL/MachineLearning/SupervisedLearning/Calibration/__init__.py,sha256=9i0HnmwE-feJKwWVvEFbSj7IO1az3NSykRexu9pjzOI,110
70
+ DLL/MachineLearning/SupervisedLearning/GaussianProcesses/_GaussianProcessRegressor.py,sha256=YdNsRFbRsSKCvhkH547q4obYLBi-TN_T35YArqHOhVE,11232
71
+ DLL/MachineLearning/SupervisedLearning/GaussianProcesses/__init__.py,sha256=JU_9NSgl7y1svll4zAavwbF4OpNUxpV-z7P2izInzO4,63
72
+ DLL/MachineLearning/SupervisedLearning/LinearModels/TimeSeries.py,sha256=M0R5pR0ow75g3H49SmVe34r1IpysTBsUi1kwFnEaPS4,6739
73
+ DLL/MachineLearning/SupervisedLearning/LinearModels/_Elasticnet.py,sha256=koT_gYgCUUarFY_WKqFfRVhrFxMrMEGMqvFY5n0igf4,10908
74
+ DLL/MachineLearning/SupervisedLearning/LinearModels/_LassoRegression.py,sha256=8_0zykscdfDdNNTfYb5FCgWKkUQAJLp7DK1ZO0YTNjo,9963
75
+ DLL/MachineLearning/SupervisedLearning/LinearModels/_LinearRegression.py,sha256=N5a6r9SUsL0ruMOqnpcVIOcjfEtSwyj_IbxUisCGBrU,4730
76
+ DLL/MachineLearning/SupervisedLearning/LinearModels/_LogisticRegression.py,sha256=fNRnQbsDaRfFYFaRXKyVIIB6k2LszhoOuaE31fcvKCk,11464
77
+ DLL/MachineLearning/SupervisedLearning/LinearModels/_RANSAC.py,sha256=qnS6Bq-UMBgcGfcoqV9Oq6oksWMbPRC2wcOaBKiyanU,5465
78
+ DLL/MachineLearning/SupervisedLearning/LinearModels/_RidgeRegression.py,sha256=K3SwklSmnboQlra6F-fFGC1AcBvrywYu2mgG1DoqYLU,4411
79
+ DLL/MachineLearning/SupervisedLearning/LinearModels/__init__.py,sha256=hAbhub62mkSFVWqDcfkeWikdTKGKqc6jIpT86iDrrMA,282
80
+ DLL/MachineLearning/SupervisedLearning/NaiveBayes/_BernoulliNaiveBayes.py,sha256=VX2ZS4mygsxf8X2FaGA7zRppfMDnsorYRahxe98MS5M,6324
81
+ DLL/MachineLearning/SupervisedLearning/NaiveBayes/_GaussianNaiveBayes.py,sha256=Z1uUtJPMO7q092aUcMU8IrQjcLzTSlYCGUEk22TKcYE,5502
82
+ DLL/MachineLearning/SupervisedLearning/NaiveBayes/_MultinomialNaiveBayes.py,sha256=j9xB_DMyjTgVhC8RlHFqtJYRPh9oGqz8AjK8ZixJK4Q,6657
83
+ DLL/MachineLearning/SupervisedLearning/NaiveBayes/__init__.py,sha256=1g9R-UzcEpEq9djLV2SNXKbEMUcWZMNlK7m95u_DgSg,165
84
+ DLL/MachineLearning/SupervisedLearning/Neighbors/_KNearestNeighborsClassifier.py,sha256=-3dCh7B8NaKc3dcCHyN9l0Y56FNU2WrdnI6p23rqX5Y,5934
85
+ DLL/MachineLearning/SupervisedLearning/Neighbors/_KNearestNeighborsRegressor.py,sha256=myke_XyaQ9hewPotlJUCj0ji-JUsWj-NrTRir2dBi7Y,4521
86
+ DLL/MachineLearning/SupervisedLearning/Neighbors/__init__.py,sha256=Kc_ces7OgsWqu_nVvj1hqb3XtYhjZWQDI7zm5CUi8AY,112
87
+ DLL/MachineLearning/SupervisedLearning/SupportVectorMachines/_SVC.py,sha256=ebadOEcBlYpfrKtc4cRPiQZUZkZG9xuItPo9eIY0ZIo,14725
88
+ DLL/MachineLearning/SupervisedLearning/SupportVectorMachines/_SVR.py,sha256=wdb0cKj-S9cYrfARdVvPU-2SifbM6vm7CZmAEhjePJg,5130
89
+ DLL/MachineLearning/SupervisedLearning/SupportVectorMachines/__init__.py,sha256=dmfQgcvAQloyqtgKV_uBZFVyyI44lNJL4lTOnOuX2qE,46
90
+ DLL/MachineLearning/SupervisedLearning/Trees/_AdaBoostClassifier.py,sha256=Q_adet_CNi2iAMKg3HMi1H-J710BQwYTVJOZ-pGmbLA,9100
91
+ DLL/MachineLearning/SupervisedLearning/Trees/_AdaBoostRegressor.py,sha256=yf2ksgEdW2R9JJYnl6LGFY8Llso0GGR7u3Ui69lEvFM,7331
92
+ DLL/MachineLearning/SupervisedLearning/Trees/_DecisionTree.py,sha256=6X4Fo9w4OQb30jaNhrpSlway5LjSdEIVhGzICXsiHLM,11479
93
+ DLL/MachineLearning/SupervisedLearning/Trees/_GradientBoostingClassifier.py,sha256=zmrxUj4FBbqw99SpaRjXWmecQU7gO7Pv-sYbeCioF_A,10564
94
+ DLL/MachineLearning/SupervisedLearning/Trees/_GradientBoostingRegressor.py,sha256=ynNxCyNdru4j3VqfNFwSHWky25_lnvVhC1HE3la8-vM,6633
95
+ DLL/MachineLearning/SupervisedLearning/Trees/_LGBMClassifier.py,sha256=0dklABcL-oHD5Cna4wiMCBZZuJ4iY-nRp6HNQUq6n7U,16242
96
+ DLL/MachineLearning/SupervisedLearning/Trees/_LGBMRegressor.py,sha256=nsnl0_84M10nKJrMDdFfw17ok1Wc3ldbVhBhyYg9yYg,10535
97
+ DLL/MachineLearning/SupervisedLearning/Trees/_LGBMTree.py,sha256=nGbJ3eXe704jUOU2V7X7kD6B5Eis8HDxCD2E-TuygBU,9135
98
+ DLL/MachineLearning/SupervisedLearning/Trees/_RandomForest.py,sha256=ccn4hnWRS6J4QTO5vnzhfcRBt_rKjBMmP0HL0vRH61s,5480
99
+ DLL/MachineLearning/SupervisedLearning/Trees/_RegressionForest.py,sha256=9JkGRJ5m89sgf9ylObQq2B9moa4ViXokUNdK4R9XtVo,4167
100
+ DLL/MachineLearning/SupervisedLearning/Trees/_RegressionTree.py,sha256=cV6k33j5w05ri8Qj5CGBZFfCZBD7Ne6VoC4Px-noghY,7524
101
+ DLL/MachineLearning/SupervisedLearning/Trees/_XGBoostClassifier.py,sha256=a-I7ztRysypUz8vrNNpYxKYvSwpUIG6bW816sOXrRgM,12624
102
+ DLL/MachineLearning/SupervisedLearning/Trees/_XGBoostRegressor.py,sha256=Iuv7AN_AZ1bdKhoeQLG72E8S6bJJisKZVltdmeAoRMw,7334
103
+ DLL/MachineLearning/SupervisedLearning/Trees/_XGBoostTree.py,sha256=b6LBE8VTlCzeVNTBJZsZXIqia_cD2Fc-II03xvY7BGk,5298
104
+ DLL/MachineLearning/SupervisedLearning/Trees/__init__.py,sha256=Fw7sh_7BdDwlj18TvQEWnVc_ckS2MqAzwKhz9Zprqa0,625
105
+ DLL/MachineLearning/UnsupervisedLearning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
+ DLL/MachineLearning/UnsupervisedLearning/Clustering/_DBScan.py,sha256=XGn_65Y6alhzpik1uc08GtRLscVlcbXho0dh53lVKWA,3654
107
+ DLL/MachineLearning/UnsupervisedLearning/Clustering/_GaussianMixtureModels.py,sha256=WlsptQb5v9m1OdYYfLmQ8M0FJjWQi5Li4Ck9tn7Liwg,5568
108
+ DLL/MachineLearning/UnsupervisedLearning/Clustering/_KMeans.py,sha256=sOK_LLMmkO4gR-9px-5SKGlMUUgBG2HtQRqCrhHmH24,6135
109
+ DLL/MachineLearning/UnsupervisedLearning/Clustering/_SpectralClustering.py,sha256=lxnLzA6WoCYfgq-JO_Sl7G-Qj8jf7P8Sbx13sSxOGRY,5381
110
+ DLL/MachineLearning/UnsupervisedLearning/Clustering/__init__.py,sha256=R7a_mebqGLOQQK7I6ZHTMmeF2izahOvikbMcsXghpUI,174
111
+ DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_LDA.py,sha256=k3ehDy8iCsHx7IB46YrW14_TE9ox6osXWlYrWEfut3g,5070
112
+ DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_PCA.py,sha256=B_JIj2P1HL9O3ckabM5YKcDRaO1WoLkgTI5XgyIAMcU,5287
113
+ DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_QDA.py,sha256=G7ilL1Bor_mwV5RhkwG7mWlTdMKF-BkaoFRCiNgqozU,2967
114
+ DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_RobustPCA.py,sha256=rVLi-Eb4v-_QSOLKnRgfim1IYdrjOq2Rub9dhRyInY4,7746
115
+ DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_TSNE.py,sha256=PzJ3FFuVD7p4IP0Vf5_QQa6aYVATTrjJe7YRxSpnSYc,9046
116
+ DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/_UMAP.py,sha256=QH-iCcGS5D8LVwyJSEKgP8Y2LVGJg9QbFPf2xxR70vc,9291
117
+ DLL/MachineLearning/UnsupervisedLearning/DimensionalityReduction/__init__.py,sha256=7Wt6Fa1MqA1Vt6BWAZiI_czxIxPRCZg6LhZALzsp7Qs,154
118
+ DLL/MachineLearning/UnsupervisedLearning/OutlierDetection/_IsolationForest.py,sha256=IF6DTseMAtHgYN9eWv9W5wIhkTIFZsTTbmCq9qix0dI,8387
119
+ DLL/MachineLearning/UnsupervisedLearning/OutlierDetection/__init__.py,sha256=lr1uAKhei2z8-Ae_ebBjDrTfn5iLjn50811wpPCg4RE,47
120
+ pydllib-1.0.dist-info/licenses/LICENSE,sha256=8PB2EheFgSLtdmB6r-dSfP1Rd9geE7HGBRYcLtorOOM,1096
121
+ pydllib-1.0.dist-info/METADATA,sha256=HWU1tg8hnOcP0emXrkGhfJhgApSS538iueav_NpWcO8,3709
122
+ pydllib-1.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
123
+ pydllib-1.0.dist-info/top_level.txt,sha256=OfI0n9xXRSUKDpW0o2RdaTx4Fadu1qHz6w_VxCOzdRU,4
124
+ pydllib-1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (78.1.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 - 2025 Aatu Selkee
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ DLL