fSTG-Toolkit 1.2.1__tar.gz → 1.4.0__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.
Files changed (69) hide show
  1. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/LICENSE +104 -100
  2. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/PKG-INFO +21 -6
  3. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/README.md +17 -2
  4. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/pyproject.toml +26 -7
  5. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/__init__.py +3 -3
  6. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/__main__.py +37 -9
  7. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/__init__.py +3 -3
  8. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/assets/common.js +3 -3
  9. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/assets/custom.css +3 -3
  10. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/core/__init__.py +3 -3
  11. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/core/color.py +3 -3
  12. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/core/config.py +3 -3
  13. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/core/datafilesdb.py +3 -3
  14. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/core/geometry.py +3 -3
  15. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/core/processing.py +3 -3
  16. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/core/utils.py +4 -3
  17. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/figures/__init__.py +3 -3
  18. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/figures/common.py +3 -3
  19. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/figures/data.py +3 -3
  20. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/figures/frequent.py +3 -3
  21. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/figures/matrices.py +3 -3
  22. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/figures/metrics.py +3 -3
  23. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/figures/subject.py +3 -3
  24. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/fstg_view.py +3 -3
  25. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/pages/dashboard.py +3 -3
  26. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/pages/home.py +3 -3
  27. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/pages/list.py +3 -3
  28. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/pages/submit.py +3 -3
  29. fstg_toolkit-1.4.0/src/fstg_toolkit/app/views/__init__.py +32 -0
  30. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/views/common.py +3 -3
  31. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/views/data.py +3 -3
  32. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/views/frequent.py +3 -3
  33. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/views/matrices.py +3 -3
  34. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/views/metrics.py +3 -3
  35. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/views/subject.py +3 -3
  36. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/factory.py +3 -3
  37. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/frequent/__init__.py +3 -3
  38. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/frequent/_docker_utils.py +3 -3
  39. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/frequent/patterns.py +3 -3
  40. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/frequent/spminer.py +9 -7
  41. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/graph.py +44 -6
  42. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/io.py +9 -7
  43. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/metrics.py +3 -3
  44. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/simulation.py +3 -3
  45. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/.env +2 -0
  46. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/Dockerfile +52 -0
  47. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/NOTICE.md +38 -0
  48. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/batch_process.py +337 -0
  49. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/ckpt/model.pt +0 -0
  50. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/common/combined_syn.py +134 -0
  51. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/common/data.py +457 -0
  52. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/common/feature_preprocess.py +220 -0
  53. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/common/models.py +286 -0
  54. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/common/utils.py +238 -0
  55. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/docker-compose.yml +9 -0
  56. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/requirements.txt +8 -0
  57. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/subgraph_matching/alignment.py +94 -0
  58. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/subgraph_matching/config.py +68 -0
  59. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/subgraph_matching/hyp_search.py +82 -0
  60. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/subgraph_matching/test.py +130 -0
  61. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/subgraph_matching/train.py +218 -0
  62. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/subgraph_mining/config.py +47 -0
  63. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/subgraph_mining/decoder.py +327 -0
  64. fstg_toolkit-1.4.0/src/fstg_toolkit/spminer/subgraph_mining/search_agents.py +345 -0
  65. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/utils.py +3 -3
  66. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/visualization.py +3 -3
  67. fstg_toolkit-1.2.1/src/fstg_toolkit/app/views/__init__.py +0 -0
  68. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/app/assets/favicon.ico +0 -0
  69. {fstg_toolkit-1.2.1 → fstg_toolkit-1.4.0}/src/fstg_toolkit/logging.yml +0 -0
@@ -1,5 +1,7 @@
1
1
 
2
- CeCILL-B FREE SOFTWARE LICENSE AGREEMENT
2
+ CeCILL FREE SOFTWARE LICENSE AGREEMENT
3
+
4
+ Version 2.1 dated 2013-06-21
3
5
 
4
6
 
5
7
  Notice
@@ -8,41 +10,39 @@ This Agreement is a Free Software license agreement that is the result
8
10
  of discussions between its authors in order to ensure compliance with
9
11
  the two main principles guiding its drafting:
10
12
 
11
- * firstly, compliance with the principles governing the distribution
12
- of Free Software: access to source code, broad rights granted to
13
- users,
14
- * secondly, the election of a governing law, French law, with which
15
- it is conformant, both as regards the law of torts and
16
- intellectual property law, and the protection that it offers to
17
- both authors and holders of the economic rights over software.
13
+ * firstly, compliance with the principles governing the distribution
14
+ of Free Software: access to source code, broad rights granted to users,
15
+ * secondly, the election of a governing law, French law, with which it
16
+ is conformant, both as regards the law of torts and intellectual
17
+ property law, and the protection that it offers to both authors and
18
+ holders of the economic rights over software.
18
19
 
19
- The authors of the CeCILL-B (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
20
- license are:
20
+ The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
21
+ license are:
21
22
 
22
- Commissariat à l'Energie Atomique - CEA, a public scientific, technical
23
- and industrial research establishment, having its principal place of
24
- business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
23
+ Commissariat à l'énergie atomique et aux énergies alternatives - CEA, a
24
+ public scientific, technical and industrial research establishment,
25
+ having its principal place of business at 25 rue Leblanc, immeuble Le
26
+ Ponant D, 75015 Paris, France.
25
27
 
26
28
  Centre National de la Recherche Scientifique - CNRS, a public scientific
27
29
  and technological establishment, having its principal place of business
28
30
  at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
29
31
 
30
32
  Institut National de Recherche en Informatique et en Automatique -
31
- INRIA, a public scientific and technological establishment, having its
33
+ Inria, a public scientific and technological establishment, having its
32
34
  principal place of business at Domaine de Voluceau, Rocquencourt, BP
33
35
  105, 78153 Le Chesnay cedex, France.
34
36
 
35
37
 
36
38
  Preamble
37
39
 
38
- This Agreement is an open source software license intended to give users
39
- significant freedom to modify and redistribute the software licensed
40
- hereunder.
40
+ The purpose of this Free Software license agreement is to grant users
41
+ the right to modify and redistribute the software governed by this
42
+ license within the framework of an open source distribution model.
41
43
 
42
- The exercising of this freedom is conditional upon a strong obligation
43
- of giving credits for everybody that distributes a software
44
- incorporating a software ruled by the current license so as all
45
- contributions to be properly identified and acknowledged.
44
+ The exercising of this right is conditional upon certain obligations for
45
+ users so as to preserve this status for all subsequent redistributions.
46
46
 
47
47
  In consideration of access to the source code and the rights to copy,
48
48
  modify and redistribute granted by the license, users are provided only
@@ -65,6 +65,10 @@ removed herefrom.
65
65
  This Agreement may apply to any or all software for which the holder of
66
66
  the economic rights decides to submit the use thereof to its provisions.
67
67
 
68
+ Frequently asked questions can be found on the official website of the
69
+ CeCILL licenses family (http://www.cecill.info/index.en.html) for any
70
+ necessary clarification.
71
+
68
72
 
69
73
  Article 1 - DEFINITIONS
70
74
 
@@ -116,6 +120,15 @@ spaces, with one calling the other when they are run.
116
120
  Internal Module: means any or all Module, connected to the Software so
117
121
  that they both execute in the same address space.
118
122
 
123
+ GNU GPL: means the GNU General Public License version 2 or any
124
+ subsequent version, as published by the Free Software Foundation Inc.
125
+
126
+ GNU Affero GPL: means the GNU Affero General Public License version 3 or
127
+ any subsequent version, as published by the Free Software Foundation Inc.
128
+
129
+ EUPL: means the European Union Public License version 1.1 or any
130
+ subsequent version, as published by the European Commission.
131
+
119
132
  Parties: mean both the Licensee and the Licensor.
120
133
 
121
134
  These expressions may be used both in singular and plural form.
@@ -125,8 +138,8 @@ These expressions may be used both in singular and plural form.
125
138
 
126
139
  The purpose of the Agreement is the grant by the Licensor to the
127
140
  Licensee of a non-exclusive, transferable and worldwide license for the
128
- Software as set forth in Article 5 hereinafter for the whole term of the
129
- protection granted by the rights over said Software.
141
+ Software as set forth in Article 5 <#scope> hereinafter for the whole
142
+ term of the protection granted by the rights over said Software.
130
143
 
131
144
 
132
145
  Article 3 - ACCEPTANCE
@@ -135,18 +148,17 @@ protection granted by the rights over said Software.
135
148
  conditions of this Agreement upon the occurrence of the first of the
136
149
  following events:
137
150
 
138
- * (i) loading the Software by any or all means, notably, by
139
- downloading from a remote server, or by loading from a physical
140
- medium;
141
- * (ii) the first time the Licensee exercises any of the rights
142
- granted hereunder.
151
+ * (i) loading the Software by any or all means, notably, by
152
+ downloading from a remote server, or by loading from a physical medium;
153
+ * (ii) the first time the Licensee exercises any of the rights granted
154
+ hereunder.
143
155
 
144
156
  3.2 One copy of the Agreement, containing a notice relating to the
145
157
  characteristics of the Software, to the limited warranty, and to the
146
158
  fact that its use is restricted to experienced users has been provided
147
159
  to the Licensee prior to its acceptance as set forth in Article 3.1
148
- hereinabove, and the Licensee hereby acknowledges that it has read and
149
- understood it.
160
+ <#accepting> hereinabove, and the Licensee hereby acknowledges that it
161
+ has read and understood it.
150
162
 
151
163
 
152
164
  Article 4 - EFFECTIVE DATE AND TERM
@@ -155,7 +167,7 @@ understood it.
155
167
  4.1 EFFECTIVE DATE
156
168
 
157
169
  The Agreement shall become effective on the date when it is accepted by
158
- the Licensee as set forth in Article 3.1.
170
+ the Licensee as set forth in Article 3.1 <#accepting>.
159
171
 
160
172
 
161
173
  4.2 TERM
@@ -185,18 +197,18 @@ The Licensee is authorized to use the Software, without any limitation
185
197
  as to its fields of application, with it being hereinafter specified
186
198
  that this comprises:
187
199
 
188
- 1. permanent or temporary reproduction of all or part of the Software
189
- by any or all means and in any or all form.
200
+ 1. permanent or temporary reproduction of all or part of the Software
201
+ by any or all means and in any or all form.
190
202
 
191
- 2. loading, displaying, running, or storing the Software on any or
192
- all medium.
203
+ 2. loading, displaying, running, or storing the Software on any or all
204
+ medium.
193
205
 
194
- 3. entitlement to observe, study or test its operation so as to
195
- determine the ideas and principles behind any or all constituent
196
- elements of said Software. This shall apply when the Licensee
197
- carries out any or all loading, displaying, running, transmission
198
- or storage operation as regards the Software, that it is entitled
199
- to carry out hereunder.
206
+ 3. entitlement to observe, study or test its operation so as to
207
+ determine the ideas and principles behind any or all constituent
208
+ elements of said Software. This shall apply when the Licensee
209
+ carries out any or all loading, displaying, running, transmission or
210
+ storage operation as regards the Software, that it is entitled to
211
+ carry out hereunder.
200
212
 
201
213
 
202
214
  5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS
@@ -229,69 +241,62 @@ The Licensee is authorized to distribute true copies of the Software in
229
241
  Source Code or Object Code form, provided that said distribution
230
242
  complies with all the provisions of the Agreement and is accompanied by:
231
243
 
232
- 1. a copy of the Agreement,
244
+ 1. a copy of the Agreement,
233
245
 
234
- 2. a notice relating to the limitation of both the Licensor's
235
- warranty and liability as set forth in Articles 8 and 9,
246
+ 2. a notice relating to the limitation of both the Licensor's warranty
247
+ and liability as set forth in Articles 8 and 9,
236
248
 
237
249
  and that, in the event that only the Object Code of the Software is
238
250
  redistributed, the Licensee allows effective access to the full Source
239
- Code of the Software at a minimum during the entire period of its
251
+ Code of the Software for a period of at least three years from the
240
252
  distribution of the Software, it being understood that the additional
241
- cost of acquiring the Source Code shall not exceed the cost of
242
- transferring the data.
253
+ acquisition cost of the Source Code shall not exceed the cost of the
254
+ data transfer.
243
255
 
244
256
 
245
257
  5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
246
258
 
247
- If the Licensee makes any Contribution to the Software, the resulting
248
- Modified Software may be distributed under a license agreement other
249
- than this Agreement subject to compliance with the provisions of Article
250
- 5.3.4.
251
-
252
-
253
- 5.3.3 DISTRIBUTION OF EXTERNAL MODULES
254
-
255
- When the Licensee has developed an External Module, the terms and
256
- conditions of this Agreement do not apply to said External Module, that
257
- may be distributed under a separate license agreement.
259
+ When the Licensee makes a Contribution to the Software, the terms and
260
+ conditions for the distribution of the resulting Modified Software
261
+ become subject to all the provisions of this Agreement.
258
262
 
263
+ The Licensee is authorized to distribute the Modified Software, in
264
+ source code or object code form, provided that said distribution
265
+ complies with all the provisions of the Agreement and is accompanied by:
259
266
 
260
- 5.3.4 CREDITS
267
+ 1. a copy of the Agreement,
261
268
 
262
- Any Licensee who may distribute a Modified Software hereby expressly
263
- agrees to:
269
+ 2. a notice relating to the limitation of both the Licensor's warranty
270
+ and liability as set forth in Articles 8 and 9,
264
271
 
265
- 1. indicate in the related documentation that it is based on the
266
- Software licensed hereunder, and reproduce the intellectual
267
- property notice for the Software,
272
+ and, in the event that only the object code of the Modified Software is
273
+ redistributed,
268
274
 
269
- 2. ensure that written indications of the Software intended use,
270
- intellectual property notice and license hereunder are included in
271
- easily accessible format from the Modified Software interface,
275
+ 3. a note stating the conditions of effective access to the full source
276
+ code of the Modified Software for a period of at least three years
277
+ from the distribution of the Modified Software, it being understood
278
+ that the additional acquisition cost of the source code shall not
279
+ exceed the cost of the data transfer.
272
280
 
273
- 3. mention, on a freely accessible website describing the Modified
274
- Software, at least throughout the distribution term thereof, that
275
- it is based on the Software licensed hereunder, and reproduce the
276
- Software intellectual property notice,
277
281
 
278
- 4. where it is distributed to a third party that may distribute a
279
- Modified Software without having to make its source code
280
- available, make its best efforts to ensure that said third party
281
- agrees to comply with the obligations set forth in this Article .
282
+ 5.3.3 DISTRIBUTION OF EXTERNAL MODULES
282
283
 
283
- If the Software, whether or not modified, is distributed with an
284
- External Module designed for use in connection with the Software, the
285
- Licensee shall submit said External Module to the foregoing obligations.
284
+ When the Licensee has developed an External Module, the terms and
285
+ conditions of this Agreement do not apply to said External Module, that
286
+ may be distributed under a separate license agreement.
286
287
 
287
288
 
288
- 5.3.5 COMPATIBILITY WITH THE CeCILL AND CeCILL-C LICENSES
289
+ 5.3.4 COMPATIBILITY WITH OTHER LICENSES
289
290
 
290
- Where a Modified Software contains a Contribution subject to the CeCILL
291
- license, the provisions set forth in Article 5.3.4 shall be optional.
291
+ The Licensee can include a code that is subject to the provisions of one
292
+ of the versions of the GNU GPL, GNU Affero GPL and/or EUPL in the
293
+ Modified or unmodified Software, and distribute that entire code under
294
+ the terms of the same version of the GNU GPL, GNU Affero GPL and/or EUPL.
292
295
 
293
- A Modified Software may be distributed under the CeCILL-C license. In
294
- such a case the provisions set forth in Article 5.3.4 shall be optional.
296
+ The Licensee can include the Modified or unmodified Software in a code
297
+ that is subject to the provisions of one of the versions of the GNU GPL,
298
+ GNU Affero GPL and/or EUPL and distribute that entire code under the
299
+ terms of the same version of the GNU GPL, GNU Affero GPL and/or EUPL.
295
300
 
296
301
 
297
302
  Article 6 - INTELLECTUAL PROPERTY
@@ -306,7 +311,7 @@ and no one shall be entitled to modify the terms and conditions for the
306
311
  distribution of said Initial Software.
307
312
 
308
313
  The Holder undertakes that the Initial Software will remain ruled at
309
- least by this Agreement, for the duration set forth in Article 4.2.
314
+ least by this Agreement, for the duration set forth in Article 4.2 <#term>.
310
315
 
311
316
 
312
317
  6.2 OVER THE CONTRIBUTIONS
@@ -328,17 +333,17 @@ govern its distribution.
328
333
 
329
334
  The Licensee expressly undertakes:
330
335
 
331
- 1. not to remove, or modify, in any manner, the intellectual property
332
- notices attached to the Software;
336
+ 1. not to remove, or modify, in any manner, the intellectual property
337
+ notices attached to the Software;
333
338
 
334
- 2. to reproduce said notices, in an identical manner, in the copies
335
- of the Software modified or not.
339
+ 2. to reproduce said notices, in an identical manner, in the copies of
340
+ the Software modified or not.
336
341
 
337
342
  The Licensee undertakes not to directly or indirectly infringe the
338
- intellectual property rights of the Holder and/or Contributors on the
339
- Software and to take, where applicable, vis-à-vis its staff, any and all
340
- measures required to ensure respect of said intellectual property rights
341
- of the Holder and/or Contributors.
343
+ intellectual property rights on the Software of the Holder and/or
344
+ Contributors, and to take, where applicable, vis-à-vis its staff, any
345
+ and all measures required to ensure respect of said intellectual
346
+ property rights of the Holder and/or Contributors.
342
347
 
343
348
 
344
349
  Article 7 - RELATED SERVICES
@@ -399,13 +404,13 @@ or properties.
399
404
 
400
405
  9.2 The Licensor hereby represents, in good faith, that it is entitled
401
406
  to grant all the rights over the Software (including in particular the
402
- rights set forth in Article 5).
407
+ rights set forth in Article 5 <#scope>).
403
408
 
404
409
  9.3 The Licensee acknowledges that the Software is supplied "as is" by
405
410
  the Licensor without any other express or tacit warranty, other than
406
- that provided for in Article 9.2 and, in particular, without any warranty
407
- as to its commercial value, its secured, safe, innovative or relevant
408
- nature.
411
+ that provided for in Article 9.2 <#good-faith> and, in particular,
412
+ without any warranty as to its commercial value, its secured, safe,
413
+ innovative or relevant nature.
409
414
 
410
415
  Specifically, the Licensor does not warrant that the Software is free
411
416
  from any error, that it will operate without interruption, that it will
@@ -420,7 +425,7 @@ arising out of any or all proceedings for infringement that may be
420
425
  instituted in respect of the use, modification and redistribution of the
421
426
  Software. Nevertheless, should such proceedings be instituted against
422
427
  the Licensee, the Licensor shall provide it with technical and legal
423
- assistance for its defense. Such technical and legal assistance shall be
428
+ expertise for its defense. Such technical and legal expertise shall be
424
429
  decided on a case-by-case basis between the relevant Licensor and the
425
430
  Licensee pursuant to a memorandum of understanding. The Licensor
426
431
  disclaims any and all liability as regards the Licensee's use of the
@@ -497,7 +502,8 @@ address new issues encountered by Free Software.
497
502
 
498
503
  12.3 Any Software distributed under a given version of the Agreement may
499
504
  only be subsequently distributed under the same version of the Agreement
500
- or a subsequent version.
505
+ or a subsequent version, subject to the provisions of Article 5.3.4
506
+ <#compatibility>.
501
507
 
502
508
 
503
509
  Article 13 - GOVERNING LAW AND JURISDICTION
@@ -511,5 +517,3 @@ occurrence, and unless emergency proceedings are necessary, the
511
517
  disagreements or disputes shall be referred to the Paris Courts having
512
518
  jurisdiction, by the more diligent Party.
513
519
 
514
-
515
- Version 1.0 dated 2006-09-05.
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fSTG-Toolkit
3
- Version: 1.2.1
4
- Summary: Aan Open-Source Software for Spatio-Temporal Graph Analysis of fMRI data.
5
- License-Expression: CECILL-B
3
+ Version: 1.4.0
4
+ Summary: An Open-Source Software for Spatio-Temporal Graph Analysis of fMRI data.
5
+ License-Expression: CECILL-2.1
6
6
  License-File: LICENSE
7
7
  Author: Julien PONTABRY
8
8
  Author-email: jpontabry@unistra.fr
9
- Requires-Python: >=3.12,<=3.13
9
+ Requires-Python: >=3.12,<3.14
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Classifier: Programming Language :: Python :: 3.13
@@ -47,10 +47,12 @@ Description-Content-Type: text/markdown
47
47
  <div style="text-align: center">
48
48
 
49
49
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fSTG-Toolkit)
50
- [![CI](https://github.com/julienpontabry/fstg_toolkit/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/julienpontabry/fstg_toolkit/actions/workflows/ci.yml)
50
+ [![CI](https://github.com/ICube-Medical-Image-Computing/fstg_toolkit/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/ICube-Medical-Image-Computing/fstg_toolkit/actions/workflows/ci.yml)
51
+ [![Coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/julienpontabry/c923f99a7adf99424c8c17066285ed3d/raw/fstg_toolkit_coverage.json)](https://github.com/ICube-Medical-Image-Computing/fstg_toolkit/actions/workflows/ci.yml)
51
52
  ![PyPI - Version](https://img.shields.io/pypi/v/fSTG-Toolkit)
52
53
  ![PyPI - License](https://img.shields.io/pypi/l/fSTG-Toolkit)
53
- [![Read the Docs](https://img.shields.io/readthedocs/fSTG-Toolkit)](https://fstg-toolkit.readthedocs.io/)
54
+ [![Read the Docs](https://img.shields.io/readthedocs/fstg-toolkit)](https://fstg-toolkit.readthedocs.io/)
55
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.22093918.svg)](https://doi.org/10.5281/zenodo.22093918)
54
56
 
55
57
  </div>
56
58
 
@@ -130,3 +132,16 @@ Full usage documentation, tutorials, and API reference are available at **[fstg-
130
132
 
131
133
  ![Illustration of the dashboard.](docs/_static/images/illustration_web-viewer.png)
132
134
 
135
+
136
+ ## Community
137
+
138
+ - **Questions about using the toolkit?** Ask in the [discussions](https://github.com/ICube-Medical-Image-Computing/fstg_toolkit/discussions), in the *Q&A* category.
139
+ - **Found a bug?** Open an [issue](https://github.com/ICube-Medical-Image-Computing/fstg_toolkit/issues/new/choose) with the bug report form.
140
+ - **Want to contribute?** Bug fixes, new features, and documentation improvements are welcome: see [CONTRIBUTING.md](CONTRIBUTING.md) for the development setup, the test suites, and the pull request process.
141
+
142
+ Everyone taking part in the project is expected to follow the [Code of Conduct](CODE_OF_CONDUCT.md).
143
+
144
+ ## License
145
+
146
+ The fSTG Toolkit is distributed under the CeCILL Free Software Agreement v2.1. See LICENSE for more information. The Multi-SPMiner sources bundled under `src/fstg_toolkit/spminer/` are an exception: see `src/fstg_toolkit/spminer/NOTICE.md` for their provenance and status.
147
+
@@ -5,10 +5,12 @@
5
5
  <div style="text-align: center">
6
6
 
7
7
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fSTG-Toolkit)
8
- [![CI](https://github.com/julienpontabry/fstg_toolkit/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/julienpontabry/fstg_toolkit/actions/workflows/ci.yml)
8
+ [![CI](https://github.com/ICube-Medical-Image-Computing/fstg_toolkit/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/ICube-Medical-Image-Computing/fstg_toolkit/actions/workflows/ci.yml)
9
+ [![Coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/julienpontabry/c923f99a7adf99424c8c17066285ed3d/raw/fstg_toolkit_coverage.json)](https://github.com/ICube-Medical-Image-Computing/fstg_toolkit/actions/workflows/ci.yml)
9
10
  ![PyPI - Version](https://img.shields.io/pypi/v/fSTG-Toolkit)
10
11
  ![PyPI - License](https://img.shields.io/pypi/l/fSTG-Toolkit)
11
- [![Read the Docs](https://img.shields.io/readthedocs/fSTG-Toolkit)](https://fstg-toolkit.readthedocs.io/)
12
+ [![Read the Docs](https://img.shields.io/readthedocs/fstg-toolkit)](https://fstg-toolkit.readthedocs.io/)
13
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.22093918.svg)](https://doi.org/10.5281/zenodo.22093918)
12
14
 
13
15
  </div>
14
16
 
@@ -87,3 +89,16 @@ python -m fstg_toolkit graph build --help
87
89
  Full usage documentation, tutorials, and API reference are available at **[fstg-toolkit.readthedocs.io](https://fstg-toolkit.readthedocs.io/)**.
88
90
 
89
91
  ![Illustration of the dashboard.](docs/_static/images/illustration_web-viewer.png)
92
+
93
+
94
+ ## Community
95
+
96
+ - **Questions about using the toolkit?** Ask in the [discussions](https://github.com/ICube-Medical-Image-Computing/fstg_toolkit/discussions), in the *Q&A* category.
97
+ - **Found a bug?** Open an [issue](https://github.com/ICube-Medical-Image-Computing/fstg_toolkit/issues/new/choose) with the bug report form.
98
+ - **Want to contribute?** Bug fixes, new features, and documentation improvements are welcome: see [CONTRIBUTING.md](CONTRIBUTING.md) for the development setup, the test suites, and the pull request process.
99
+
100
+ Everyone taking part in the project is expected to follow the [Code of Conduct](CODE_OF_CONDUCT.md).
101
+
102
+ ## License
103
+
104
+ The fSTG Toolkit is distributed under the CeCILL Free Software Agreement v2.1. See LICENSE for more information. The Multi-SPMiner sources bundled under `src/fstg_toolkit/spminer/` are an exception: see `src/fstg_toolkit/spminer/NOTICE.md` for their provenance and status.
@@ -1,14 +1,14 @@
1
1
  [project]
2
2
  name = "fSTG-Toolkit"
3
- version = "1.2.1"
4
- description = "Aan Open-Source Software for Spatio-Temporal Graph Analysis of fMRI data."
3
+ version = "1.4.0"
4
+ description = "An Open-Source Software for Spatio-Temporal Graph Analysis of fMRI data."
5
5
  authors = [
6
- {name = "Julien PONTABRY",email = "jpontabry@unistra.fr"}
6
+ {name = "Julien PONTABRY", email = "jpontabry@unistra.fr"}
7
7
  ]
8
8
  readme = "README.md"
9
- license = "CECILL-B"
9
+ license = "CECILL-2.1"
10
10
  license-files = ["LICENSE"]
11
- requires-python = ">=3.12,<=3.13"
11
+ requires-python = ">=3.12,<3.14"
12
12
  dependencies = [
13
13
  "networkx (>=3.4.2,<4.0.0)",
14
14
  "pandas (>=2.2.3,<3.0.0)",
@@ -47,8 +47,27 @@ docs = [
47
47
  "sphinx-copybutton (>=0.5.2,<0.6.0)",
48
48
  ]
49
49
 
50
- [tool.setuptools.package-data]
51
- fstg_toolkit = ["logging.yml"]
50
+ [tool.coverage.run]
51
+ source = ["src/fstg_toolkit"]
52
+ omit = [
53
+ "src/fstg_toolkit/app/*",
54
+ "src/fstg_toolkit/spminer/*",
55
+ ]
56
+ relative_files = true
57
+
58
+ [tool.coverage.report]
59
+ show_missing = true
60
+ # Code that cannot run unattended: matplotlib widgets driven by mouse and
61
+ # keyboard events, commands starting a Dash server or requiring the Docker
62
+ # based SPMiner service, and the screen probing behind figure sizing.
63
+ exclude_also = [
64
+ "^class DynamicPlot",
65
+ "^class DynamicTimeCursor",
66
+ "^def __figure_screen_setup",
67
+ "^def frequent",
68
+ "^def show",
69
+ "^def serve",
70
+ ]
52
71
 
53
72
  [build-system]
54
73
  requires = ["poetry-core>=2.0.0,<3.0.0"]
@@ -5,9 +5,9 @@
5
5
  # to model, process and analyze the longitudinal reorganization of brain
6
6
  # connectivity data, as functional MRI for instance.
7
7
  #
8
- # This software is governed by the CeCILL-B license under French law and
8
+ # This software is governed by the CeCILL license under French law and
9
9
  # abiding by the rules of distribution of free software. You can use,
10
- # modify and/or redistribute the software under the terms of the CeCILL-B
10
+ # modify and/or redistribute the software under the terms of the CeCILL
11
11
  # license as circulated by CEA, CNRS and INRIA at the following URL
12
12
  # "http://www.cecill.info".
13
13
  #
@@ -29,7 +29,7 @@
29
29
  # same conditions as regards security.
30
30
  #
31
31
  # The fact that you are presently reading this means that you have had
32
- # knowledge of the CeCILL-B license and that you accept its terms.
32
+ # knowledge of the CeCILL license and that you accept its terms.
33
33
 
34
34
  from importlib.metadata import version
35
35
 
@@ -5,9 +5,9 @@
5
5
  # to model, process and analyze the longitudinal reorganization of brain
6
6
  # connectivity data, as functional MRI for instance.
7
7
  #
8
- # This software is governed by the CeCILL-B license under French law and
8
+ # This software is governed by the CeCILL license under French law and
9
9
  # abiding by the rules of distribution of free software. You can use,
10
- # modify and/or redistribute the software under the terms of the CeCILL-B
10
+ # modify and/or redistribute the software under the terms of the CeCILL
11
11
  # license as circulated by CEA, CNRS and INRIA at the following URL
12
12
  # "http://www.cecill.info".
13
13
  #
@@ -29,7 +29,7 @@
29
29
  # same conditions as regards security.
30
30
  #
31
31
  # The fact that you are presently reading this means that you have had
32
- # knowledge of the CeCILL-B license and that you accept its terms.
32
+ # knowledge of the CeCILL license and that you accept its terms.
33
33
 
34
34
  __help_epilog = []
35
35
  __graph_help_epilog = []
@@ -126,6 +126,24 @@ def __load_graph(filepath: Path) -> SpatioTemporalGraph:
126
126
  return loader.load_graph(areas, chosen)
127
127
 
128
128
 
129
+ def __with_zip_suffix(filepath: Path) -> Path:
130
+ """Add the '.zip' extension to a path of archive, if it is missing.
131
+
132
+ Parameters
133
+ ----------
134
+ filepath : Path
135
+ The path of the archive to write.
136
+
137
+ Returns
138
+ -------
139
+ Path
140
+ The path ending with the '.zip' extension.
141
+ """
142
+ if filepath.suffix.lower() == '.zip':
143
+ return filepath
144
+ return filepath.with_name(f'{filepath.name}.zip')
145
+
146
+
129
147
  ## building and computing #####################################################
130
148
 
131
149
 
@@ -224,6 +242,7 @@ def build(areas_description_path: Path, correlation_matrices_path: Tuple[Path],
224
242
 
225
243
  The CSV file for the description of areas and regions should have the columns: `Id_Area`, `Name_Area`, and `Name_Region`.
226
244
  """
245
+ output = __with_zip_suffix(output)
227
246
 
228
247
  # prepare the data saver
229
248
  saver = DataSaver()
@@ -234,6 +253,9 @@ def build(areas_description_path: Path, correlation_matrices_path: Tuple[Path],
234
253
  matrices = {}
235
254
  for cm in correlation_matrices_path:
236
255
  for name, matrix in __read_load_np(cm):
256
+ if name in matrices:
257
+ error_console.print(f"Warning: sequence '{name}' from '{cm.name}' "
258
+ f"replaces a previous sequence with the same name.")
237
259
  matrices[name] = matrix
238
260
  console.print(f"- red '{cm.name}'")
239
261
  console.print(f"Red {len(correlation_matrices_path)} files.")
@@ -638,9 +660,10 @@ GRAPH_SEQUENCE_DESCRIPTION = GraphSequenceDescription()
638
660
 
639
661
 
640
662
  @graph.group()
641
- @click.option('-o', '--output_path', type=click.Path(writable=True),
663
+ @click.option('-o', '--output_path', type=click.Path(writable=True, path_type=Path),
642
664
  default="output", show_default="a file named 'output' in the current directory",
643
- help="Path where to write the simulated output.")
665
+ help="Path where to write the simulated output. The extension is added if missing: "
666
+ "'.zip' for patterns and sequences, '.npz' for correlations.")
644
667
  @click.pass_context
645
668
  def simulate(ctx: click.core.Context, output_path: Path):
646
669
  """Simulate a spatio-temporal graph."""
@@ -679,7 +702,7 @@ def pattern(ctx: click.core.Context, networks: List[List[Tuple[Tuple[int, int],
679
702
  pat = generate_pattern(networks_list=networks,
680
703
  spatial_edges=spatial_edges,
681
704
  temporal_edges=temporal_edges)
682
- save_spatio_temporal_graph(pat, ctx.obj)
705
+ save_spatio_temporal_graph(pat, __with_zip_suffix(ctx.obj))
683
706
 
684
707
 
685
708
  @simulate.command()
@@ -697,7 +720,7 @@ def sequence(ctx: click.core.Context, patterns: Tuple[Path], sequence_descriptio
697
720
  for i, filepath in enumerate(patterns)}
698
721
  simulator = SpatioTemporalGraphSimulator(**pattern_graphs)
699
722
  graph = simulator.simulate(*sequence_description)
700
- save_spatio_temporal_graph(graph, ctx.obj)
723
+ save_spatio_temporal_graph(graph, __with_zip_suffix(ctx.obj))
701
724
 
702
725
 
703
726
  @simulate.command()
@@ -707,11 +730,16 @@ def sequence(ctx: click.core.Context, patterns: Tuple[Path], sequence_descriptio
707
730
  help="The correlation threshold when building graph from matrices.")
708
731
  @click.pass_context
709
732
  def correlations(ctx: click.core.Context, graph_path: Path, threshold: float):
710
- """Simulate correlations matrices from a spatio-temporal graph."""
733
+ """Simulate correlations matrices from a spatio-temporal graph.
734
+
735
+ The sequence of matrices is saved under the name of the output file (without its
736
+ '.npz' extension), which is the name the command 'build' gives to its graph.
737
+ """
711
738
  graph = __load_graph(graph_path)
712
739
  simulator = CorrelationMatrixSequenceSimulator(graph, threshold=threshold)
713
740
  matrices = simulator.simulate()
714
- np.savez_compressed(ctx.obj, simulated=matrices)
741
+ name = Path(ctx.obj).name.removesuffix('.npz')
742
+ np.savez_compressed(ctx.obj, **{name: matrices})
715
743
 
716
744
 
717
745
  ## showing ####################################################################
@@ -5,9 +5,9 @@
5
5
  # to model, process and analyze the longitudinal reorganization of brain
6
6
  # connectivity data, as functional MRI for instance.
7
7
  #
8
- # This software is governed by the CeCILL-B license under French law and
8
+ # This software is governed by the CeCILL license under French law and
9
9
  # abiding by the rules of distribution of free software. You can use,
10
- # modify and/or redistribute the software under the terms of the CeCILL-B
10
+ # modify and/or redistribute the software under the terms of the CeCILL
11
11
  # license as circulated by CEA, CNRS and INRIA at the following URL
12
12
  # "http://www.cecill.info".
13
13
  #
@@ -29,4 +29,4 @@
29
29
  # same conditions as regards security.
30
30
  #
31
31
  # The fact that you are presently reading this means that you have had
32
- # knowledge of the CeCILL-B license and that you accept its terms.
32
+ # knowledge of the CeCILL license and that you accept its terms.