psdi-data-conversion 0.0.37__py3-none-any.whl → 0.0.39__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.
- psdi_data_conversion/app.py +64 -14
- psdi_data_conversion/constants.py +6 -5
- psdi_data_conversion/converter.py +20 -13
- psdi_data_conversion/converters/base.py +75 -68
- psdi_data_conversion/converters/c2x.py +14 -0
- psdi_data_conversion/converters/openbabel.py +12 -11
- psdi_data_conversion/database.py +361 -115
- psdi_data_conversion/dist.py +2 -1
- psdi_data_conversion/file_io.py +1 -2
- psdi_data_conversion/log_utility.py +1 -1
- psdi_data_conversion/main.py +152 -70
- psdi_data_conversion/static/content/index-versions/psdi-common-footer.html +12 -8
- psdi_data_conversion/static/content/psdi-common-footer.html +12 -8
- psdi_data_conversion/static/data/data.json +617 -3
- psdi_data_conversion/static/javascript/convert.js +54 -6
- psdi_data_conversion/static/javascript/convert_common.js +16 -2
- psdi_data_conversion/static/javascript/data.js +36 -4
- psdi_data_conversion/static/javascript/format.js +22 -9
- psdi_data_conversion/static/styles/format.css +7 -0
- psdi_data_conversion/templates/index.htm +57 -48
- psdi_data_conversion/testing/constants.py +3 -0
- psdi_data_conversion/testing/conversion_callbacks.py +4 -3
- psdi_data_conversion/testing/conversion_test_specs.py +44 -20
- psdi_data_conversion/testing/gui.py +362 -294
- psdi_data_conversion/testing/utils.py +38 -19
- {psdi_data_conversion-0.0.37.dist-info → psdi_data_conversion-0.0.39.dist-info}/METADATA +88 -4
- {psdi_data_conversion-0.0.37.dist-info → psdi_data_conversion-0.0.39.dist-info}/RECORD +30 -30
- {psdi_data_conversion-0.0.37.dist-info → psdi_data_conversion-0.0.39.dist-info}/WHEEL +0 -0
- {psdi_data_conversion-0.0.37.dist-info → psdi_data_conversion-0.0.39.dist-info}/entry_points.txt +0 -0
- {psdi_data_conversion-0.0.37.dist-info → psdi_data_conversion-0.0.39.dist-info}/licenses/LICENSE +0 -0
@@ -6,12 +6,12 @@ This module defines general classes and methods used for unit tests.
|
|
6
6
|
|
7
7
|
from __future__ import annotations
|
8
8
|
|
9
|
-
from dataclasses import dataclass, field
|
10
|
-
from collections.abc import Callable, Iterable
|
11
|
-
from math import isclose
|
12
9
|
import os
|
13
10
|
import shlex
|
14
11
|
import sys
|
12
|
+
from collections.abc import Callable, Iterable
|
13
|
+
from dataclasses import dataclass, field
|
14
|
+
from math import isclose
|
15
15
|
from tempfile import TemporaryDirectory
|
16
16
|
from typing import Any
|
17
17
|
from unittest.mock import patch
|
@@ -23,6 +23,7 @@ import psdi_data_conversion
|
|
23
23
|
from psdi_data_conversion.constants import CONVERTER_DEFAULT, GLOBAL_LOG_FILENAME, LOG_NONE, OUTPUT_LOG_EXT
|
24
24
|
from psdi_data_conversion.converter import run_converter
|
25
25
|
from psdi_data_conversion.converters.openbabel import COORD_GEN_KEY, COORD_GEN_QUAL_KEY
|
26
|
+
from psdi_data_conversion.database import get_format_info
|
26
27
|
from psdi_data_conversion.dist import LINUX_LABEL, get_dist
|
27
28
|
from psdi_data_conversion.file_io import is_archive, split_archive_ext
|
28
29
|
from psdi_data_conversion.main import main as data_convert_main
|
@@ -125,9 +126,12 @@ class ConversionTestSpec:
|
|
125
126
|
filename: str | Iterable[str] = "nacl.cif"
|
126
127
|
"""The name of the input file, relative to the input test data location, or a list thereof"""
|
127
128
|
|
128
|
-
to_format: str | Iterable[str] = "pdb"
|
129
|
+
to_format: str | int | Iterable[str | int] = "pdb"
|
129
130
|
"""The format to test converting the input file to, or a list thereof"""
|
130
131
|
|
132
|
+
from_format: str | int | Iterable[str | int] | None = None
|
133
|
+
"""The format of the input file, when it needs to be explicitly specified"""
|
134
|
+
|
131
135
|
converter_name: str | Iterable[str] = CONVERTER_DEFAULT
|
132
136
|
"""The name of the converter to be used for the test, or a list thereof"""
|
133
137
|
|
@@ -233,9 +237,12 @@ class SingleConversionTestSpec:
|
|
233
237
|
filename: str
|
234
238
|
"""The name of the input file, relative to the input test data location"""
|
235
239
|
|
236
|
-
to_format: str
|
240
|
+
to_format: str | int
|
237
241
|
"""The format to test converting the input file to"""
|
238
242
|
|
243
|
+
from_format: str | int | None = None
|
244
|
+
"""The format of the input file, when it needs to be explicitly specified"""
|
245
|
+
|
239
246
|
converter_name: str | Iterable[str] = CONVERTER_DEFAULT
|
240
247
|
"""The name of the converter to be used for the test"""
|
241
248
|
|
@@ -257,11 +264,12 @@ class SingleConversionTestSpec:
|
|
257
264
|
@property
|
258
265
|
def out_filename(self) -> str:
|
259
266
|
"""The unqualified name of the output file which should have been created by the conversion."""
|
267
|
+
to_format_name = get_format_info(self.to_format, which=0).name
|
260
268
|
if not is_archive(self.filename):
|
261
|
-
return f"{os.path.splitext(self.filename)[0]}.{
|
269
|
+
return f"{os.path.splitext(self.filename)[0]}.{to_format_name}"
|
262
270
|
else:
|
263
271
|
filename_base, ext = split_archive_ext(os.path.basename(self.filename))
|
264
|
-
return f"{filename_base}-{
|
272
|
+
return f"{filename_base}-{to_format_name}{ext}"
|
265
273
|
|
266
274
|
@property
|
267
275
|
def log_filename(self) -> str:
|
@@ -327,6 +335,7 @@ def _run_single_test_conversion_with_library(test_spec: SingleConversionTestSpec
|
|
327
335
|
if test_spec.expect_success:
|
328
336
|
run_converter(filename=qualified_in_filename,
|
329
337
|
to_format=test_spec.to_format,
|
338
|
+
from_format=test_spec.from_format,
|
330
339
|
name=test_spec.converter_name,
|
331
340
|
upload_dir=input_dir,
|
332
341
|
download_dir=output_dir,
|
@@ -336,6 +345,7 @@ def _run_single_test_conversion_with_library(test_spec: SingleConversionTestSpec
|
|
336
345
|
with pytest.raises(Exception) as exc_info:
|
337
346
|
run_converter(filename=qualified_in_filename,
|
338
347
|
to_format=test_spec.to_format,
|
348
|
+
from_format=test_spec.from_format,
|
339
349
|
name=test_spec.converter_name,
|
340
350
|
upload_dir=input_dir,
|
341
351
|
download_dir=output_dir,
|
@@ -358,7 +368,8 @@ def _run_single_test_conversion_with_library(test_spec: SingleConversionTestSpec
|
|
358
368
|
captured_stderr=stderr,
|
359
369
|
exc_info=exc_info)
|
360
370
|
callback_msg = test_spec.callback(test_info)
|
361
|
-
|
371
|
+
if callback_msg:
|
372
|
+
pytest.fail(callback_msg)
|
362
373
|
|
363
374
|
|
364
375
|
def run_test_conversion_with_cla(test_spec: ConversionTestSpec):
|
@@ -413,6 +424,7 @@ def _run_single_test_conversion_with_cla(test_spec: SingleConversionTestSpec,
|
|
413
424
|
if test_spec.expect_success:
|
414
425
|
run_converter_through_cla(filename=qualified_in_filename,
|
415
426
|
to_format=test_spec.to_format,
|
427
|
+
from_format=test_spec.from_format,
|
416
428
|
name=test_spec.converter_name,
|
417
429
|
input_dir=input_dir,
|
418
430
|
output_dir=output_dir,
|
@@ -423,6 +435,7 @@ def _run_single_test_conversion_with_cla(test_spec: SingleConversionTestSpec,
|
|
423
435
|
with pytest.raises(SystemExit) as exc_info:
|
424
436
|
run_converter_through_cla(filename=qualified_in_filename,
|
425
437
|
to_format=test_spec.to_format,
|
438
|
+
from_format=test_spec.from_format,
|
426
439
|
name=test_spec.converter_name,
|
427
440
|
input_dir=input_dir,
|
428
441
|
output_dir=output_dir,
|
@@ -452,7 +465,8 @@ def _run_single_test_conversion_with_cla(test_spec: SingleConversionTestSpec,
|
|
452
465
|
captured_stdout=stdout,
|
453
466
|
captured_stderr=stderr)
|
454
467
|
callback_msg = test_spec.callback(test_info)
|
455
|
-
|
468
|
+
if callback_msg:
|
469
|
+
pytest.fail(callback_msg)
|
456
470
|
|
457
471
|
|
458
472
|
def run_converter_through_cla(filename: str,
|
@@ -461,6 +475,7 @@ def run_converter_through_cla(filename: str,
|
|
461
475
|
input_dir: str,
|
462
476
|
output_dir: str,
|
463
477
|
log_file: str,
|
478
|
+
from_format: str | None = None,
|
464
479
|
**conversion_kwargs):
|
465
480
|
"""Runs a test conversion through the command-line interface
|
466
481
|
|
@@ -483,17 +498,21 @@ def run_converter_through_cla(filename: str,
|
|
483
498
|
The desired name of the log file
|
484
499
|
conversion_kwargs : Any
|
485
500
|
Additional arguments describing the conversion
|
501
|
+
from_format : str | None
|
502
|
+
The format of the input file, when it needs to be explicitly specified, otherwise None
|
486
503
|
"""
|
487
504
|
|
488
505
|
# Start the argument string with the arguments we will always include
|
489
506
|
arg_string = f"{filename} -i {input_dir} -t {to_format} -o {output_dir} -w {name} --log-file {log_file}"
|
490
507
|
|
491
|
-
# For each argument in the conversion kwargs, convert it to the appropriate argument to be provided
|
492
|
-
# argument string
|
508
|
+
# For from_format and each argument in the conversion kwargs, convert it to the appropriate argument to be provided
|
509
|
+
# to the argument string
|
510
|
+
|
511
|
+
if from_format:
|
512
|
+
arg_string += f" -f {from_format}"
|
513
|
+
|
493
514
|
for key, val in conversion_kwargs.items():
|
494
|
-
if key == "
|
495
|
-
arg_string += f" -f {val}"
|
496
|
-
elif key == "log_mode":
|
515
|
+
if key == "log_mode":
|
497
516
|
if val == LOG_NONE:
|
498
517
|
arg_string += " -q"
|
499
518
|
else:
|
@@ -506,8 +525,8 @@ def run_converter_through_cla(filename: str,
|
|
506
525
|
arg_string += " --strict"
|
507
526
|
elif key == "max_file_size":
|
508
527
|
if val != 0:
|
509
|
-
|
510
|
-
|
528
|
+
pytest.fail("Test specification imposes a maximum file size, which isn't compatible with the "
|
529
|
+
"command-line application.")
|
511
530
|
elif key == "data":
|
512
531
|
for subkey, subval in val.items():
|
513
532
|
if subkey == "from_flags":
|
@@ -526,10 +545,10 @@ def run_converter_through_cla(filename: str,
|
|
526
545
|
# Handled alongside COORD_GEN_KEY above
|
527
546
|
pass
|
528
547
|
else:
|
529
|
-
|
530
|
-
|
548
|
+
pytest.fail(f"The key 'data[\"{subkey}\"]' was passed to `conversion_kwargs` but could not be "
|
549
|
+
"interpreted")
|
531
550
|
else:
|
532
|
-
|
551
|
+
pytest.fail(f"The key '{key}' was passed to `conversion_kwargs` but could not be interpreted")
|
533
552
|
|
534
553
|
run_with_arg_string(arg_string)
|
535
554
|
|
@@ -1,13 +1,11 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: psdi_data_conversion
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.39
|
4
4
|
Summary: Chemistry file format conversion service, provided by PSDI
|
5
5
|
Project-URL: Homepage, https://data-conversion.psdi.ac.uk/
|
6
6
|
Project-URL: Documentation, https://psdi-uk.github.io/psdi-data-conversion/
|
7
|
-
Project-URL: Repository, https://github.com/PSDI-UK/psdi-data-conversion
|
8
7
|
Project-URL: Issues, https://github.com/PSDI-UK/psdi-data-conversion/issues
|
9
8
|
Project-URL: Changelog, https://github.com/PSDI-UK/psdi-data-conversion/blob/main/CHANGELOG.md
|
10
|
-
Project-URL: Download, https://github.com/PSDI-UK/psdi-data-conversion/releases/latest
|
11
9
|
Author: Ray Whorley, Don Cruickshank, Tom Underwood
|
12
10
|
Author-email: Samantha Pearman-Kanza <s.pearman-kanza@soton.ac.uk>, Bryan Gillis <7204836+brgillis@users.noreply.github.com>
|
13
11
|
License: Apache License
|
@@ -245,7 +243,7 @@ Description-Content-Type: text/markdown
|
|
245
243
|
|
246
244
|
# PSDI Data Conversion
|
247
245
|
|
248
|
-
Version: Pre-release 2024-
|
246
|
+
Version: Pre-release 2024-04-14
|
249
247
|
|
250
248
|
This is the repository for the PSDI PF2 Chemistry File Format Conversion project. The goal of this project is to provide utilities to assist in converting files between the many different file formats used in chemistry, providing information on what converters are available for a given conversion and the expected quality of it, and providing multiple interfaces to perform these conversions. These interfaces are:
|
251
249
|
|
@@ -281,6 +279,10 @@ This is the repository for the PSDI PF2 Chemistry File Format Conversion project
|
|
281
279
|
- [Troubleshooting](#troubleshooting)
|
282
280
|
- [OSError: [Errno 24] Too many open files](#oserror-errno-24-too-many-open-files)
|
283
281
|
- [Errors running c2x or Atomsk converters](#errors-running-c2x-or-atomsk-converters)
|
282
|
+
- [A supported conversion fails](#a-supported-conversion-fails)
|
283
|
+
- [Input file is malformatted or corrupt](#input-file-is-malformatted-or-corrupt)
|
284
|
+
- [Input file's format is misidentified](#input-files-format-is-misidentified)
|
285
|
+
- [Other known issues](#other-known-issues)
|
284
286
|
- [Licensing](#licensing)
|
285
287
|
- [Contributors](#contributors)
|
286
288
|
- [Funding](#funding)
|
@@ -473,6 +475,24 @@ options] [-s/--strict] [--nc/--no-check] [-q/--quiet] [-g/--log-file <log file n
|
|
473
475
|
|
474
476
|
Call `psdi-data-convert -h` for details on each of these options.
|
475
477
|
|
478
|
+
Note that some requested conversions may involve ambiguous formats which share the same extension. In this case, the application will print a warning and list possible matching formats, with a disambiguating name that can be used to specify which one. For instance, the `c2x` converter can convert into two variants of the `pdb` format, and if you ask it to convert to `pdb` without specifying which one, you'll see:
|
479
|
+
|
480
|
+
```
|
481
|
+
ERROR: Extension 'pdb' is ambiguous and must be defined by ID. Possible formats and their IDs are:
|
482
|
+
9: pdb-0 (Protein Data Bank)
|
483
|
+
259: pdb-1 (Protein Data Bank with atoms numbered)
|
484
|
+
```
|
485
|
+
|
486
|
+
This provides the IDs ("9" and "259") and disambiguating names ("pdb-0" and "pdb-1") for the matching formats. Either can be used in the call to the converter, e.g.:
|
487
|
+
|
488
|
+
```bash
|
489
|
+
psdi-data-conversion nacl.cif -t 9 -w c2x
|
490
|
+
# Or equivalently:
|
491
|
+
psdi-data-conversion nacl.cif -t pdb-0 -w c2x
|
492
|
+
```
|
493
|
+
|
494
|
+
The "<format>-0" pattern can be used with any format, even if it's unambiguous, and will be interpreted as the first instance of the format in the database with valid conversions. Note that as the database expands in future versions and more valid conversions are added, these disambiguated names may change, so it is recommended to use the format's ID in scripts and with the library to ensure consistency between versions of this package.
|
495
|
+
|
476
496
|
#### Requesting Information on Possible Conversions
|
477
497
|
|
478
498
|
The script can also be used to get information on possible conversions by providing the `-l/--list` argument:
|
@@ -547,6 +567,8 @@ Where `filename` is the name of the file to convert (either fully-qualified or r
|
|
547
567
|
|
548
568
|
See the method's documentation via `help(run_converter)` after importing it for further details on usage.
|
549
569
|
|
570
|
+
Note that as with running the application through the command-line, some extra care may be needed in the case that the input or output format is ambiguous - see the [Data Conversion](#data-conversion) section above for more details on this. As with running through the command-line, a format's ID or disambiguated name must be used in the case of ambiguity.
|
571
|
+
|
550
572
|
#### `constants`
|
551
573
|
|
552
574
|
This package defines most constants used in the package. It may be imported via:
|
@@ -608,6 +630,8 @@ Once installed, the command-line script `psdi-data-convert-gui` will be made ava
|
|
608
630
|
In case of problems when using Chrome, try opening Chrome from the command line:
|
609
631
|
open -a "Google Chrome.app" --args --allow-file-access-from-files
|
610
632
|
|
633
|
+
The local version has some customisable options for running it, which can can be seen by running `psdi-data-convert-gui --help`. Most of these are only useful for development, but one notable setting is `--max-file-size-ob`, which sets the maximum allowed filesize for conversions with the Open Babel converter in megabytes. This is set to 1 MB by default, since Open Babel has a known bug which causes it to hang indefinitely for some conversions over this size (such as from large `mmcif` files). This can be set to a higher value (or to 0 to disable the limit) if the user wishes to disable this safeguard.
|
634
|
+
|
611
635
|
## Extending Functionality
|
612
636
|
|
613
637
|
The Python library and CLA are written to make it easy to extend the functionality of this package to use other file format converters. This can be done by downloading or cloning the project's source from it's GitHub Repository (https://github.com/PSDI-UK/psdi-data-conversion), editing the code to add your converter following the guidance in the "[Adding File Format Converters](https://github.com/PSDI-UK/psdi-data-conversion/blob/main/CONTRIBUTING.md#adding-file-format-converters)" section of CONTRIBUTING.md to integrate it with the Python code, and installing the modified package on your system via:
|
@@ -691,6 +715,66 @@ Alternatively, you can run your own versions of the `c2x` and `atomsk` binaries
|
|
691
715
|
|
692
716
|
On the other hand, it's possible that an error of this sort will occur if you have a non-working binary of one of these converters in your `$PATH`. If this might be the case, you can try removing it and see if the prepackaged binary works for you, or else recompile it to try to fix errors.
|
693
717
|
|
718
|
+
### A supported conversion fails
|
719
|
+
|
720
|
+
Here we'll go over some of the most common reasons that a supported conversion might fail, and what can be done to fix the issue.
|
721
|
+
|
722
|
+
#### Input file is malformatted or corrupt
|
723
|
+
|
724
|
+
Usually if there is a problem with the input file, the error message you receive should indicate some difficulty reading it. If the error message indicates this might be the issue, try the following:
|
725
|
+
|
726
|
+
Check the validity of the input file, ideally using another tool which can read in a file of its type, and confirm that it can be read successfully. This doesn't guarantee that the file is valid, as some utilities are tolerant to some formatting errors, but if you get an error here, then you know the issue is with the file. If the file can be read by another utility, see if the conversion you're attempting is supported by another converter - it might be that the file has a negligible issue that another converter is able to ignore.
|
727
|
+
|
728
|
+
If you've confirmed that the input file is malformatted or corrupt, see if it's possible to regenerate it or fix it manually. There may be a bug in the program which generated it - if this is under your control, check the format's documentation to help fix it. Otherwise, you can see if you can use the format's documentation as a guide to manually fix the file.
|
729
|
+
|
730
|
+
#### Input file's format is misidentified
|
731
|
+
|
732
|
+
If you've followed the steps in the previous section and confirmed that the input file is valid, but you're still having issues with it, one possibility is that this application is misidentifying the file's format. This can happen if you've given the file an extension which isn't expected of its format, or in rare cases where an extension is shared by multiple formats.
|
733
|
+
|
734
|
+
To remedy this, try explicitly specifying the format, rather than letting the application guess it from the extension. You can see all supported formats by running `psdi-data-convert -l`, and then get details on one with `psdi-data-convert -l -f <format>` to confirm that it's the correct format. You can then call the conversion script with the argument `-f <format>`, or within Python make a call to the library with `run_converter(..., from_format=<format>)` to specify the format.
|
735
|
+
|
736
|
+
`<format>` here can be the standard extension of the format (in the case of unambiguous extensions), its ID, or its disambiguated name. To give an example which explains what each of these are, let's say you have an MDL MOL file you wish to convert to XYZ, so you get information about it and possible converters with `psdi-data-convert -l -f mol -t xyz`:
|
737
|
+
|
738
|
+
```base
|
739
|
+
$ psdi-data-convert -l -f mol
|
740
|
+
WARNING: Format 'mol' is ambiguous and could refer to multiple formats. It may be necessary to explicitly specify which
|
741
|
+
you want to use when calling this script, e.g. with '-f mol-0' - see the disambiguated names in the list below:
|
742
|
+
|
743
|
+
18: mol-0 (MDL MOL)
|
744
|
+
216: mol-1 (MOLDY)
|
745
|
+
|
746
|
+
20: xyz (XYZ cartesian coordinates)
|
747
|
+
|
748
|
+
The following registered converters can convert from mol-0 to xyz:
|
749
|
+
|
750
|
+
Open Babel
|
751
|
+
c2x
|
752
|
+
|
753
|
+
For details on input/output flags and options allowed by a converter for this conversion, call:
|
754
|
+
psdi-data-convert -l <converter name> -f mol-0 -t xyz
|
755
|
+
|
756
|
+
The following registered converters can convert from mol-1 to xyz:
|
757
|
+
|
758
|
+
Atomsk
|
759
|
+
|
760
|
+
For details on input/output flags and options allowed by a converter for this conversion, call:
|
761
|
+
psdi-data-convert -l <converter name> -f mol-1 -t xyz
|
762
|
+
```
|
763
|
+
|
764
|
+
This output indicates that the application is aware of two formats which share the `mol` extension: MDL MOL and MOLDY. It lists the ID, disambiguated name, and description of each: ID `18` and disambiguated name `mol-0` for MDL MOL, and ID `216` and disambiguated name `mol-1` for MOLDY. The XYZ format, on the other hand, is unambiguous, and only lists the standard extension for it as its disambiguated name (although `xyz-0` will be accepted without error as well).
|
765
|
+
|
766
|
+
The program then lists converters which can handle the requested conversion, revealing a potential pitfall: The Open Babel and c2x converters can convert from MDL MOL to XYZ, which the Atomsk converter can convert from MOLDY to XYZ. If you don't specify which format you're converting from, the script might assume you meant to use the other one, if that's the only one compatible with the converter you've requested (or with the default converter, Open Babel, if you didn't explicitly request one). So to be careful here, it's best to specify this input format unambiguously.
|
767
|
+
|
768
|
+
Since in this example you have an MDL MOL file, you would use `-f 18` or `-f mol-0` to explicitly specify it in the command-line, or similarly provide one of these to the `from_format` argument of `run_converter` within Python. The application will then properly handle it, including alerting you if you request a conversion that isn't supported by your requested converter (e.g. if you request a conversion of this MDL MOL file to XYZ with Atomsk).
|
769
|
+
|
770
|
+
Important note: The disambiguated name is generated dynamically and isn't stored in the database, and in rare cases may change for some formats in future versions of this application which expand support to more formats and conversions. For uses which require forward-compatibility with future versions of this application, the ID should be used instead.
|
771
|
+
|
772
|
+
#### Other known issues
|
773
|
+
|
774
|
+
Through testing, we've identified some other conversion issues, which we list here:
|
775
|
+
|
776
|
+
- Open Babel will indefinitely hang when attempting to convert large files (more than ~1 MB) of certain types (such as `mmcif`). This is an issue with the converter itself and not our application, which we hope will be fixed in a future version. If this occurs, the job will have to be forcibly terminated. CTRL+C will fail to terminate it, but it can be stopped with CTRL+Z, then terminated with `kill %N`, where N is the number listed beside the job when it is stopped (usually 1). The conversion should then be attempted with another supported converter.
|
777
|
+
|
694
778
|
## Licensing
|
695
779
|
|
696
780
|
This project is provided under the Apache License version 2.0, the terms of which can be found in the file `LICENSE`.
|
@@ -1,12 +1,12 @@
|
|
1
1
|
psdi_data_conversion/__init__.py,sha256=urMsTqsTHTch1q4rMT9dgGnrvdPFMP9B8r-6Kr8H5sE,404
|
2
|
-
psdi_data_conversion/app.py,sha256=
|
3
|
-
psdi_data_conversion/constants.py,sha256=
|
4
|
-
psdi_data_conversion/converter.py,sha256=
|
5
|
-
psdi_data_conversion/database.py,sha256=
|
6
|
-
psdi_data_conversion/dist.py,sha256=
|
7
|
-
psdi_data_conversion/file_io.py,sha256=
|
8
|
-
psdi_data_conversion/log_utility.py,sha256=
|
9
|
-
psdi_data_conversion/main.py,sha256=
|
2
|
+
psdi_data_conversion/app.py,sha256=A1TUVYuHUJKbtBXC0MbCDwyNcZgCYLDWyt_2lPLETK0,14212
|
3
|
+
psdi_data_conversion/constants.py,sha256=JWYC2gXsEi6bBl_NdEBh5nLZ7qX2LZZV_DutfEHJ8qo,7390
|
4
|
+
psdi_data_conversion/converter.py,sha256=A9u_xnzQ_OFp_rttttBNwZNA4d56Fdbm9FpjgyCroUA,23211
|
5
|
+
psdi_data_conversion/database.py,sha256=tgqUxW75eaWiEsiHNI7pUfMTIKmB23zrprSZ3ZDpO3Y,55967
|
6
|
+
psdi_data_conversion/dist.py,sha256=LOcKEP7H7JA9teX1m-5awuBi69gmdhtUit7yxtCTOZ8,2293
|
7
|
+
psdi_data_conversion/file_io.py,sha256=LvdPmnYL_7Xlcr-7LJjUbbky4gKiqTTvPRzdbtvQaJo,8794
|
8
|
+
psdi_data_conversion/log_utility.py,sha256=CHAq-JvBnTKaE0SHK5hM5j2dTbfSli4iUc3hsf6dBhc,8789
|
9
|
+
psdi_data_conversion/main.py,sha256=NaV5Pqe-8qYn7ybgok3t6RuRK1H_9ip68UWpV7DRgO0,41773
|
10
10
|
psdi_data_conversion/security.py,sha256=wjdrMre29TpkF2NqrsXJ5sschSAnDzqLYTLUcNR21Qw,902
|
11
11
|
psdi_data_conversion/bin/LICENSE_ATOMSK,sha256=-Ay6SFTAf9x-OaRAiOgMNoutfUMLHx5jQQA1HqZ6p7I,34886
|
12
12
|
psdi_data_conversion/bin/LICENSE_C2X,sha256=-Ay6SFTAf9x-OaRAiOgMNoutfUMLHx5jQQA1HqZ6p7I,34886
|
@@ -16,9 +16,9 @@ psdi_data_conversion/bin/mac/atomsk,sha256=pqExRdkR8NSqSasHZjE74R_CiM6Dkr_yvfyak
|
|
16
16
|
psdi_data_conversion/bin/mac/c2x,sha256=dI-bBoQ6uqc6KMYKJaq0x7ejJgOf_wysTxQA5BrF8AY,2581960
|
17
17
|
psdi_data_conversion/converters/__init__.py,sha256=15Ldt06eyZ0bgNPB4qg419U0Zcjt6TUCTzjCBo8EIzM,210
|
18
18
|
psdi_data_conversion/converters/atomsk.py,sha256=_V33me1e4HW0-YXvdE-z6PdwtSK2gYV6QZf5d8aPqH4,1523
|
19
|
-
psdi_data_conversion/converters/base.py,sha256=
|
20
|
-
psdi_data_conversion/converters/c2x.py,sha256=
|
21
|
-
psdi_data_conversion/converters/openbabel.py,sha256=
|
19
|
+
psdi_data_conversion/converters/base.py,sha256=gYZ-2f693_YBgJdlXFUZOpjVhB8PAbkbLFkOS9BFg9Q,36022
|
20
|
+
psdi_data_conversion/converters/c2x.py,sha256=jDA84H8Jpz--ajTWNWX6K6oMfOMMbMxkA31-VnGi0gU,2019
|
21
|
+
psdi_data_conversion/converters/openbabel.py,sha256=OYppOMfnvxmVgRY5vUkcVokWn-bQSSeG8MOFqN1MCIY,13224
|
22
22
|
psdi_data_conversion/scripts/atomsk.sh,sha256=N_NMO5q8sI3Lt1TerC-xcKbMI0kfscAudy5UAbY0uR0,804
|
23
23
|
psdi_data_conversion/scripts/c2x.sh,sha256=F48jhgtgouKKZDQ9p6tCCNBN5bPuidBq2GcTurdWzQc,770
|
24
24
|
psdi_data_conversion/static/content/accessibility.htm,sha256=5mzlPM-d5KBoOuvuBTmer5QEI9lWQSd7FPH1KFn_7B0,14187
|
@@ -29,13 +29,13 @@ psdi_data_conversion/static/content/documentation.htm,sha256=1GiEjlDCP0kJ3CKkx3l
|
|
29
29
|
psdi_data_conversion/static/content/download.htm,sha256=DQKWEuq_Bjv2TyV6DnPXnHrSOBvGYRHOU-m6YOwfsh4,4727
|
30
30
|
psdi_data_conversion/static/content/feedback.htm,sha256=fZrhn4Egs9g6ygqPzV6ZG9ndYK02VdALNVNXRsZ716k,1788
|
31
31
|
psdi_data_conversion/static/content/header-links.html,sha256=7B2bHa7dLfSZ4hPMvVJ3kR0niVAOO3FtHJo0K6m1oP4,693
|
32
|
-
psdi_data_conversion/static/content/psdi-common-footer.html,sha256=
|
32
|
+
psdi_data_conversion/static/content/psdi-common-footer.html,sha256=Qo6ecItnjqngIu1Kyg8YOptqjraMFxyJTYu3wiW5Wuw,4080
|
33
33
|
psdi_data_conversion/static/content/psdi-common-header.html,sha256=vRAgLGKE_RhXgBUQnarxnpkGl9j2Qeedqqo3VNDVGdk,1825
|
34
34
|
psdi_data_conversion/static/content/report.htm,sha256=CRwlF7a7QvAjHsajuehWOtLxbo-JAjqrS_Q-I4BWxzs,4549
|
35
35
|
psdi_data_conversion/static/content/index-versions/header-links.html,sha256=WN9oZL7hLtH_yv5PvX3Ky7_YGrNvQL_RQ5eU8DB50Rg,764
|
36
|
-
psdi_data_conversion/static/content/index-versions/psdi-common-footer.html,sha256=
|
36
|
+
psdi_data_conversion/static/content/index-versions/psdi-common-footer.html,sha256=nFZtEObp-X73p95oTOAvqzoPwjsEJD5dKUDhUPDCcj4,4136
|
37
37
|
psdi_data_conversion/static/content/index-versions/psdi-common-header.html,sha256=IXmvdlArY-60b7HgvKjcNF3eSmEmTImX7Hdasswyi5s,1907
|
38
|
-
psdi_data_conversion/static/data/data.json,sha256=
|
38
|
+
psdi_data_conversion/static/data/data.json,sha256=1nljosxtwbLRfIIIa6-GHJnhvzhB759oEGvVQ18QP_4,3647095
|
39
39
|
psdi_data_conversion/static/img/colormode-toggle-dm.svg,sha256=Q85ODwU67chZ77lyT9gITtnmqzJEycFmz35dJuqaPXE,502
|
40
40
|
psdi_data_conversion/static/img/colormode-toggle-lm.svg,sha256=sIKXsNmLIXU4fSuuqrN0r-J4Hd3NIqoiXNT3mdq5-Fo,1155
|
41
41
|
psdi_data_conversion/static/img/psdi-icon-dark.svg,sha256=-hYXxegsw67i0qqAOYCx-I-ZPyG04wG0aBVTKoZQlL0,69747
|
@@ -62,26 +62,26 @@ psdi_data_conversion/static/img/ukri-logo-darktext.png,sha256=3UgghERAmFdnre0Ffc
|
|
62
62
|
psdi_data_conversion/static/img/ukri-logo-lighttext.png,sha256=ptIQwIGGdVsO2rTximo9QjtJFH9DpkJcAs1glwKFjwo,25579
|
63
63
|
psdi_data_conversion/static/javascript/accessibility.js,sha256=kbnWHeBNPrTLrnYRjMEUmiOcCXM2bORYIRfzUB03TAE,7208
|
64
64
|
psdi_data_conversion/static/javascript/common.js,sha256=3YZdwfq54OPl-xIImTwjbXqxKqlrAaEbeac0cAHvScU,1720
|
65
|
-
psdi_data_conversion/static/javascript/convert.js,sha256=
|
66
|
-
psdi_data_conversion/static/javascript/convert_common.js,sha256=
|
65
|
+
psdi_data_conversion/static/javascript/convert.js,sha256=xWd0V9wyPD6t2ltTbaAQqqnvneU6_VEdMhVyg7UUo6c,10453
|
66
|
+
psdi_data_conversion/static/javascript/convert_common.js,sha256=nr0UTAPv2hahqCjl_JzxoOAtsyKIsk6qDXO6cItmChg,11369
|
67
67
|
psdi_data_conversion/static/javascript/convertato.js,sha256=faSvfm9HWT3i8piqEDq8OfekiPo3jCV2vKT_VjdzwmE,3555
|
68
68
|
psdi_data_conversion/static/javascript/convertc2x.js,sha256=TTqC9B2FD_q3RcPE2GJh6yAhocQyJLRfQsbSWzm2g3U,3550
|
69
|
-
psdi_data_conversion/static/javascript/data.js,sha256=
|
70
|
-
psdi_data_conversion/static/javascript/format.js,sha256=
|
69
|
+
psdi_data_conversion/static/javascript/data.js,sha256=ZM5PkPqiq8aUaB0ARWLK4TVSuxJKAFAAxlF1-7BsJ1g,6915
|
70
|
+
psdi_data_conversion/static/javascript/format.js,sha256=S-ovNuqOSfS-RYDhFxxCDpTKFKdxOWAYvJuzeEPcXB0,21260
|
71
71
|
psdi_data_conversion/static/javascript/load_accessibility.js,sha256=jTLfmubEmko2bJ_MKWMkmYxUeBxotozc-0-ua69CYJo,3265
|
72
72
|
psdi_data_conversion/static/javascript/psdi-common.js,sha256=I0QqGQ7l_rA4KEfenQTfPc-uOXXp8sxMh_NHL3EkFm4,6231
|
73
73
|
psdi_data_conversion/static/javascript/report.js,sha256=BHH5UOhXJtB6J_xk_y6woquNKt5W9hCrQapxKtGG1eA,12470
|
74
|
-
psdi_data_conversion/static/styles/format.css,sha256=
|
74
|
+
psdi_data_conversion/static/styles/format.css,sha256=PaQkUVxQfXI9nbJ-7YsN1tNIcLXfwXk8wJC-zht8nRA,3269
|
75
75
|
psdi_data_conversion/static/styles/psdi-common.css,sha256=09VY-lldoZCrohuqPKnd9fvDget5g9ybi6uh13pYeY0,17249
|
76
|
-
psdi_data_conversion/templates/index.htm,sha256=
|
76
|
+
psdi_data_conversion/templates/index.htm,sha256=wuHECSzTwVwmaGg55RnYunsaSFCYBmxf6_P4OygTNEQ,6824
|
77
77
|
psdi_data_conversion/testing/__init__.py,sha256=Xku7drtLTYLLPsd403eC0LIEa_iohVifyeyAITy2w7U,135
|
78
|
-
psdi_data_conversion/testing/constants.py,sha256=
|
79
|
-
psdi_data_conversion/testing/conversion_callbacks.py,sha256=
|
80
|
-
psdi_data_conversion/testing/conversion_test_specs.py,sha256=
|
81
|
-
psdi_data_conversion/testing/gui.py,sha256=
|
82
|
-
psdi_data_conversion/testing/utils.py,sha256=
|
83
|
-
psdi_data_conversion-0.0.
|
84
|
-
psdi_data_conversion-0.0.
|
85
|
-
psdi_data_conversion-0.0.
|
86
|
-
psdi_data_conversion-0.0.
|
87
|
-
psdi_data_conversion-0.0.
|
78
|
+
psdi_data_conversion/testing/constants.py,sha256=BtIafruSobZ9cFY0VW5Bu209eiftnN8b3ObouZBrFQU,521
|
79
|
+
psdi_data_conversion/testing/conversion_callbacks.py,sha256=ATR-_BsYCUN8KyOyUjfdWCELzySxLN5jOI0JyrQnmHQ,18858
|
80
|
+
psdi_data_conversion/testing/conversion_test_specs.py,sha256=jFik-m-jxNZzZhyfiJVIj7CT4ML8pM4dm7Trs2d0hgg,25602
|
81
|
+
psdi_data_conversion/testing/gui.py,sha256=ul7ixYANIzmOG2ZNOZmQO6wsHmGHdiBGAlw-KuoN0j8,19085
|
82
|
+
psdi_data_conversion/testing/utils.py,sha256=YrFxjyiIx1seph0j7jCUgAVm6HvXY9QJjx0MvNJRbfw,26134
|
83
|
+
psdi_data_conversion-0.0.39.dist-info/METADATA,sha256=QVdwrTA_MdZyiQNOgE2cuVEUh_zA_zs3s9LxQFVY9r4,48116
|
84
|
+
psdi_data_conversion-0.0.39.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
85
|
+
psdi_data_conversion-0.0.39.dist-info/entry_points.txt,sha256=xL7XTzaPRr2E67WhOD1M1Q-76hB8ausQlnNiHzuZQPA,123
|
86
|
+
psdi_data_conversion-0.0.39.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
87
|
+
psdi_data_conversion-0.0.39.dist-info/RECORD,,
|
File without changes
|
{psdi_data_conversion-0.0.37.dist-info → psdi_data_conversion-0.0.39.dist-info}/entry_points.txt
RENAMED
File without changes
|
{psdi_data_conversion-0.0.37.dist-info → psdi_data_conversion-0.0.39.dist-info}/licenses/LICENSE
RENAMED
File without changes
|