Giter VIP home page Giter VIP logo

chemfiles.py's Introduction

Chemfiles: a library for reading and writing chemistry files

Documentation Build Status Code Coverage Gitter DOI

Chemfiles is a high-quality library for reading and writing trajectory files created by computational chemistry simulations programs. To help you access information (atomic positions, velocities, names, topology, etc.) about these files, Chemfiles provides a simple and unified interface to a variety of file formats.

  • unified: the same code will work with all supported formats;
  • simple: the interface is easy to use and extensively documented.

You can use Chemfiles to conduct post-processing analysis and extract physical information about the systems you're simulating, to convert files from one format to another, to write trajectories with your own simulation software, and anything that requires reading or writing the file formats used in computational chemistry.

Chemfiles is used in multiple scientific software

  • cfiles provides ready-to-use analysis algorithms simulations trajectories as a command line tool;
  • lemon is a framework for rapidly mining structural information from the Protein Data Bank;
  • lumol is a prototype of universal extensible molecular simulation engine, supporting both molecular dynamics and Metropolis Monte Carlo simulations;
  • ANA detects cavities, calculates their volume and their flexibility in macromolecular structures and molecular dynamics trajectories;

This repository contains the core of the chemfiles library โ€” written in C++11, with a C99 interface. You can also use chemfiles from other languages: Python 2&3, Fortran, Rust, and Julia.

Quick Links

Is chemfiles for you?

You might want to use chemfiles if any of these points appeals to you:

  • you don't want to spend time writing and debugging a file parser;
  • you use binary formats because they are faster and take up less disk space;
  • you write analysis algorithms and want to read more than one trajectory format;
  • you write simulation software and want to use more than one format for input or output.

There are other libraries doing the roughly the same job as chemfiles, have a look at them if chemfiles is not for you. Here we also say why we could not use them instead of creating a new library.

  • OpenBabel is a C++ library providing convertions between more than 110 formats. It is more complex than chemfiles, and distributed under the GPL license.
  • VMD molfile plugins are a collection of plugins witten in C and C++ used by VMD to read/write trajectory files. They do not support a variable number of atoms in a trajectory.
  • MDTraj, MDAnalyis, cclib are Python libraries providing analysis and read capacities for trajectories. Unfortunely, they are only usable from Python.

Chemfiles Features

  • Reads both text (XYZ, PDB, ...) and binary (NetCDF, TNG, ...) file formats;
  • Transparently read and write compressed files (.gz, .xz and .bz2);
  • Filters atoms with a rich selection language, including constrains on multiple atoms;
  • Supports non-constant numbers of atoms in trajectories;
  • Easy-to-use programming interface in Python, C++, C, Fortran 95, Julia and Rust;
  • Cross-platform and usable from Linux, OS X and Windows;
  • Open source and freely available (3-clauses BSD license);

Contact / Contribute / Cite

Chemfiles is free and open source. Your contributions are always welcome!

If you have questions or suggestions, or need help, please open an issue or join us on our Gitter chat room.

If you are using Chemfiles in a published scientific study, please cite us using the following DOI: https://doi.org/10.5281/zenodo.3653157.

Getting Started

Here, we'll help you get started with the C++ and C interface. If you want to use Chemfiles with another language, please refer to the corresponding documentation.

Installing Compiled Packages

We provide compiled packages of the latest Chemfiles release for Linux distributions. You can use your package manager to download them here.

We also provide conda packages in the conda-forge community channel for Linux and OS X. This package provides the C++, C and Python interfaces. Install the conda package by running:

conda install -c conda-forge chemfiles

Find more information about pre-compiled packages in the documentation.

Building from Source

You will need cmake and a C++11 compiler.

git clone https://github.com/chemfiles/chemfiles
cd chemfiles
mkdir build
cd build
cmake ..
make
make install

Usage Examples

This is what the interface looks like in C++:

#include <iostream>
#include "chemfiles.hpp"

int main() {
    chemfiles::Trajectory trajectory("filename.xyz");

    auto frame = trajectory.read();
    std::cout << "There are " << frame.size() << " atoms in the frame" << std::endl;

    auto positions = frame.positions();
    // Do awesome science with the positions here !
}

License

Guillaume Fraux created and maintains Chemfiles, which is distributed under the 3 clauses BSD license. By contributing to Chemfiles, you agree to distribute your contributions under the same license.

Chemfiles depends on multiple external libraries, which are distributed under their respective licenses. All external libraries licenses should be compatible with chemfiles's 3 clauses BSD. One notable execption depending on your use case is Gemmi which is distributed under the Mozilla Public License version 2. You can use CHFL_DISABLE_GEMMI=ON CMake flag to remove this dependency.

The AUTHORS file lists all contributors to Chemfiles. Many thanks to all of them!

chemfiles.py's People

Contributors

ezavod avatar luthaf avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

ezavod

chemfiles.py's Issues

Tutorials/Examples are broken

Simply wanted to generate some structures for testing by using the corresponding tutorial.
Got the following errors:

  • AttributeError: 'Topology' object has no attribute 'add_atom'
    Replace topology.add_atom(Atom("H")) with topology.atoms.append(Atom("H"))
  • AttributeError: 'Frame' object has no attribute 'set_topology'
    Replace frame.set_topology(topology) with frame.topology = topology
  • TypeError: 'numpy.ndarray' object is not callable
    Replace positions = frame.positions() with positions = frame.positions
  • AttributeError: 'Frame' object has no attribute 'set_cell'
    Replace frame.set_cell(UnitCell(10, 10, 10)) with frame.cell = UnitCell(10, 10, 10)
  • The output file is still empty after all those changes...
    Call trajectory.close()

chemfiles (0.9.1) via pip
Python 3.7.3

How to load LAMMPS data file with chemfiles.py

I use python to load the chemfiles/tests-data, for example lammps-data/solvated.lmp. But it raises an error that ChemfilesError: can not find a format associated with the '.lmp' extension. In the supported formats page, the extension of lammps data is false. Could you please tell me how to load lammps data? I want to extract topology info.

Add examples to all functions

We need to add usage example to all function, possibly re-using and adapting the C API examples.

The examples should be in the doctrings of the functions, so that they show up in the documentation, and can be automatically tested.

If you want to help with this, please comment here! I can mentor you and help you going.

Leaking file handles

Something I bumped into when doing benchmarks, chemfiles (at least from Python) seems to leave file handles open, so eventually a process runs out.

Code to reproduce:

In [1]: import chemfiles                                                                                                                      

In [2]: import psutil                                                                                                                         

In [3]: process = psutil.Process()                                                                                                            

In [4]: process.open_files()                                                                                                                  
Out[4]: 
[popenfile(path='/home/richard/.ipython/profile_default/history.sqlite', fd=5, position=1130496, mode='r+', flags=557058),
 popenfile(path='/home/richard/.ipython/profile_default/history.sqlite', fd=6, position=40, mode='r+', flags=557058),
 popenfile(path='/home/richard/.ipython/profile_default/history.sqlite-journal', fd=12, position=13312, mode='r+', flags=557058)]

In [5]: baseline = len(process.open_files())                                                                                                  

In [6]: for _ in range(100): 
   ...:     t = chemfiles.Trajectory('./2r9r-1b.xyz') 
   ...:     print(len(process.open_files()) - baseline) 
   ...:                                                                                                                                       1

Add testing on Travis

This will need to build Chemharp, and run the tests.

The tests segfault for now on linux + gcc4.9

Check relocation of the conda recipe

I should check that the conda recipe is effectively relocatable, and that the molfiles plugins are used. This may need using the CHRP_MOLFILES environment variable.

Add python 3.10 support

This is possible more related to the conda-forge feedstock, but raising it here since I'm not seeing py3.10 on CI.

It'd be awesome if we could get a py3.10 conda build for chemfiles.

Error with editable installation

When installing chemfiles.py from source, there is an issue if I run the pip install with the editable -e option.

When using the standard:
pip install .
the install runs as expected.

If I run instead:
pip install -e .

I get the following ouput.

/usr/lib/python3/dist-packages/secretstorage/dhcrypto.py:15: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
/usr/lib/python3/dist-packages/secretstorage/util.py:19: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Obtaining file:///tikhome/stovey/work/Repositories/chemfiles.py
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: numpy in /tikhome/stovey/.local/lib/python3.8/site-packages (from chemfiles==0.10.0) (1.19.5)
Installing collected packages: chemfiles
  Attempting uninstall: chemfiles
    Found existing installation: chemfiles 0.10.0
    Uninstalling chemfiles-0.10.0:
      Successfully uninstalled chemfiles-0.10.0
  Running setup.py develop for chemfiles
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tikhome/stovey/work/Repositories/chemfiles.py/setup.py'"'"'; __file__='"'"'/tikhome/stovey/work/Repositories/chemfiles.py/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps --user --prefix=
         cwd: /tikhome/stovey/work/Repositories/chemfiles.py/
    Complete output (391 lines):
    Not searching for unused variables given on the command line.
    CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
    -- Configuring incomplete, errors occurred!
    See also "/tikhome/stovey/work/Repositories/chemfiles.py/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
    Not searching for unused variables given on the command line.
    -- The C compiler identification is GNU 9.3.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- The CXX compiler identification is GNU 9.3.0
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /tikhome/stovey/work/Repositories/chemfiles.py/_cmake_test_compile/build
    -- Using internal chemfiles from /tikhome/stovey/work/Repositories/chemfiles.py/lib
    -- The C compiler identification is GNU 9.3.0
    -- The CXX compiler identification is GNU 9.3.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Unpacking zlib sources
    -- Unpacking lzma sources
    -- Check if the system is big endian
    -- Searching 16 bit integer
    -- Using unsigned short
    -- Check if the system is big endian - little endian
    -- Unpacking bzip2 sources
    -- Unpacking fmt sources
    -- Unpacking toml11 sources
    -- Unpacking netcdf sources
    -- Unpacking tng sources
    -- Check if the system is big endian
    -- Searching 16 bit integer
    -- Using unsigned short
    -- Check if the system is big endian - little endian
    -- Unpacking molfiles sources
    -- Unpacking mmtf-cpp sources
    -- Unpacking pugixml sources
    -- Unpacking xdrfile sources
    -- Unpacking gemmi sources
    -- Configuring done
    -- Generating done
    CMake Warning:
      Manually-specified variables were not used by the project:
    
        PYTHON_EXECUTABLE
        PYTHON_INCLUDE_DIR
        PYTHON_LIBRARY
        PYTHON_VERSION_STRING
        SKBUILD
    
    
    -- Build files have been written to: /tikhome/stovey/work/Repositories/chemfiles.py/_skbuild/linux-x86_64-3.8/cmake-build
    Scanning dependencies of target xdrfile
    [  1%] Building C object lib/external/xdrfile/CMakeFiles/xdrfile.dir/src/xdrfile.c.o
    [  1%] Building C object lib/external/xdrfile/CMakeFiles/xdrfile.dir/src/xdrfile_trr.c.o
    [  2%] Building C object lib/external/xdrfile/CMakeFiles/xdrfile.dir/src/xdrfile_xtc.c.o
    [  2%] Built target xdrfile
    Scanning dependencies of target chemfiles_objects
    [  3%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/Atom.cpp.o
    [  3%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/Configuration.cpp.o
    [  3%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/Connectivity.cpp.o
    [  4%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/File.cpp.o
    [  4%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/Format.cpp.o
    [  5%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/FormatFactory.cpp.o
    [  5%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/FormatMetadata.cpp.o
    [  6%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/Frame.cpp.o
    [  6%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/Property.cpp.o
    [  7%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/Residue.cpp.o
    [  7%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/Selection.cpp.o
    [  7%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/Topology.cpp.o
    [  8%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/Trajectory.cpp.o
    [  8%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/UnitCell.cpp.o
    [  9%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/capi/atom.cpp.o
    [  9%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/capi/cell.cpp.o
    [ 10%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/capi/frame.cpp.o
    [ 10%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/capi/misc.cpp.o
    [ 11%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/capi/property.cpp.o
    [ 11%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/capi/residue.cpp.o
    [ 11%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/capi/selection.cpp.o
    [ 12%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/capi/shared_allocator.cpp.o
    [ 12%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/capi/topology.cpp.o
    [ 13%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/capi/trajectory.cpp.o
    [ 13%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/files/Bz2File.cpp.o
    [ 14%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/files/GzFile.cpp.o
    [ 14%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/files/MemoryBuffer.cpp.o
    [ 15%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/files/MemoryFile.cpp.o
    [ 15%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/files/NcFile.cpp.o
    [ 15%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/files/PlainFile.cpp.o
    [ 16%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/files/TNGFile.cpp.o
    [ 16%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/files/XDRFile.cpp.o
    [ 17%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/files/XzFile.cpp.o
    [ 17%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/AmberNetCDF.cpp.o
    [ 18%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/CIF.cpp.o
    [ 18%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/CML.cpp.o
    [ 19%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/CSSR.cpp.o
    [ 19%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/GRO.cpp.o
    [ 19%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/LAMMPSData.cpp.o
    [ 20%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/MMTF.cpp.o
    [ 20%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/MOL2.cpp.o
    [ 21%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/Molfile.cpp.o
    [ 21%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/PDB.cpp.o
    [ 22%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/SDF.cpp.o
    [ 22%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/SMI.cpp.o
    [ 23%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/TNG.cpp.o
    [ 23%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/TRR.cpp.o
    [ 24%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/Tinker.cpp.o
    [ 24%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/XTC.cpp.o
    [ 24%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/XYZ.cpp.o
    [ 25%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/formats/mmCIF.cpp.o
    [ 25%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/parse.cpp.o
    [ 26%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/pdb_connectivity.cpp.o
    [ 26%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/periodic_table.cpp.o
    [ 27%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/selections/NumericValues.cpp.o
    [ 27%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/selections/expr.cpp.o
    [ 28%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/selections/lexer.cpp.o
    [ 28%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/selections/parser.cpp.o
    [ 28%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/utils.cpp.o
    [ 29%] Building CXX object lib/CMakeFiles/chemfiles_objects.dir/src/warnings.cpp.o
    [ 29%] Built target chemfiles_objects
    Scanning dependencies of target pugixml
    [ 29%] Building CXX object lib/external/CMakeFiles/pugixml.dir/pugixml/src/pugixml.cpp.o
    [ 29%] Built target pugixml
    Scanning dependencies of target zlib
    [ 29%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/adler32.c.o
    [ 30%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/compress.c.o
    [ 30%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/crc32.c.o
    [ 31%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/deflate.c.o
    [ 31%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/gzclose.c.o
    [ 31%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/gzlib.c.o
    [ 32%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/gzread.c.o
    [ 32%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/gzwrite.c.o
    [ 33%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/inflate.c.o
    [ 33%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/infback.c.o
    [ 34%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/inftrees.c.o
    [ 34%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/inffast.c.o
    [ 35%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/trees.c.o
    [ 35%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/uncompr.c.o
    [ 36%] Building C object lib/external/zlib/CMakeFiles/zlib.dir/zutil.c.o
    [ 36%] Built target zlib
    Scanning dependencies of target lzma
    [ 36%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/check/check.c.o
    [ 37%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/check/crc32_fast.c.o
    [ 37%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/check/crc32_table.c.o
    [ 38%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/check/crc64_fast.c.o
    [ 38%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/check/crc64_table.c.o
    [ 38%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/check/sha256.c.o
    [ 39%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/alone_decoder.c.o
    [ 39%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/alone_encoder.c.o
    [ 40%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/auto_decoder.c.o
    [ 40%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/block_buffer_decoder.c.o
    [ 41%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/block_buffer_encoder.c.o
    [ 41%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/block_decoder.c.o
    [ 42%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/block_encoder.c.o
    [ 42%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/block_header_decoder.c.o
    [ 42%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/block_header_encoder.c.o
    [ 43%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/block_util.c.o
    [ 43%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/common.c.o
    [ 44%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/easy_buffer_encoder.c.o
    [ 44%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/easy_decoder_memusage.c.o
    [ 45%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/easy_encoder.c.o
    [ 45%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/easy_encoder_memusage.c.o
    [ 46%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/easy_preset.c.o
    [ 46%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/filter_buffer_decoder.c.o
    [ 46%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/filter_buffer_encoder.c.o
    [ 47%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/filter_common.c.o
    [ 47%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/filter_decoder.c.o
    [ 48%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/filter_encoder.c.o
    [ 48%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/filter_flags_decoder.c.o
    [ 49%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/filter_flags_encoder.c.o
    [ 49%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/index.c.o
    [ 50%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/index_decoder.c.o
    [ 50%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/index_encoder.c.o
    [ 50%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/index_hash.c.o
    [ 51%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/stream_buffer_decoder.c.o
    [ 51%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/stream_buffer_encoder.c.o
    [ 52%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/stream_decoder.c.o
    [ 52%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/stream_encoder.c.o
    [ 53%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/stream_flags_common.c.o
    [ 53%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/stream_flags_decoder.c.o
    [ 54%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/stream_flags_encoder.c.o
    [ 54%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/vli_decoder.c.o
    [ 55%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/vli_encoder.c.o
    [ 55%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/common/vli_size.c.o
    [ 55%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/delta/delta_common.c.o
    [ 56%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/delta/delta_decoder.c.o
    [ 56%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/delta/delta_encoder.c.o
    [ 57%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lz/lz_decoder.c.o
    [ 57%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lz/lz_encoder.c.o
    [ 58%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lz/lz_encoder_mf.c.o
    [ 58%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lzma/fastpos_table.c.o
    [ 59%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lzma/lzma2_decoder.c.o
    [ 59%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lzma/lzma2_encoder.c.o
    [ 59%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lzma/lzma_decoder.c.o
    [ 60%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lzma/lzma_encoder.c.o
    [ 60%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lzma/lzma_encoder_optimum_fast.c.o
    [ 61%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lzma/lzma_encoder_optimum_normal.c.o
    [ 61%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/lzma/lzma_encoder_presets.c.o
    [ 62%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/rangecoder/price_table.c.o
    [ 62%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/simple/arm.c.o
    [ 63%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/simple/armthumb.c.o
    [ 63%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/simple/ia64.c.o
    [ 63%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/simple/powerpc.c.o
    [ 64%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/simple/simple_coder.c.o
    [ 64%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/simple/simple_decoder.c.o
    [ 65%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/simple/simple_encoder.c.o
    [ 65%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/simple/sparc.c.o
    [ 66%] Building C object lib/external/lzma/CMakeFiles/lzma.dir/liblzma/simple/x86.c.o
    [ 66%] Built target lzma
    Scanning dependencies of target bzip2
    [ 66%] Building C object lib/external/bzip2/CMakeFiles/bzip2.dir/blocksort.c.o
    [ 66%] Building C object lib/external/bzip2/CMakeFiles/bzip2.dir/huffman.c.o
    [ 67%] Building C object lib/external/bzip2/CMakeFiles/bzip2.dir/crctable.c.o
    [ 67%] Building C object lib/external/bzip2/CMakeFiles/bzip2.dir/randtable.c.o
    [ 68%] Building C object lib/external/bzip2/CMakeFiles/bzip2.dir/compress.c.o
    [ 68%] Building C object lib/external/bzip2/CMakeFiles/bzip2.dir/decompress.c.o
    [ 69%] Building C object lib/external/bzip2/CMakeFiles/bzip2.dir/bzlib.c.o
    [ 69%] Built target bzip2
    Scanning dependencies of target fmt
    [ 69%] Building CXX object lib/external/fmt/CMakeFiles/fmt.dir/src/format.cc.o
    [ 70%] Building CXX object lib/external/fmt/CMakeFiles/fmt.dir/src/os.cc.o
    [ 70%] Built target fmt
    Scanning dependencies of target netcdf
    [ 71%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/liblib/nc_initialize.c.o
    [ 71%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/attr.c.o
    [ 72%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/dim.c.o
    [ 72%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/lookup3.c.o
    [ 73%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/memio.c.o
    [ 73%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/nc3dispatch.c.o
    [ 74%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/nc3internal.c.o
    [ 74%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/ncio.c.o
    [ 74%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/ncx.c.o
    [ 75%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/posixio.c.o
    [ 75%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/putget.c.o
    [ 76%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/v1hpg.c.o
    [ 76%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libsrc/var.c.o
    [ 77%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/crc32.c.o
    [ 77%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/datt.c.o
    [ 78%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dattget.c.o
    [ 78%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dattinq.c.o
    [ 78%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dattput.c.o
    [ 79%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dcopy.c.o
    [ 79%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/ddim.c.o
    [ 80%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/ddispatch.c.o
    [ 80%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/derror.c.o
    [ 81%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dfile.c.o
    [ 81%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dinternal.c.o
    [ 82%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dparallel.c.o
    [ 82%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dstring.c.o
    [ 83%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dutf8.c.o
    [ 83%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dvar.c.o
    [ 83%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dvarget.c.o
    [ 84%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dvarinq.c.o
    [ 84%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dvarput.c.o
    [ 85%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/drc.c.o
    [ 85%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dutil.c.o
    [ 86%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dwinpath.c.o
    [ 86%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/nc.c.o
    [ 87%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/ncbytes.c.o
    [ 87%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/nchashmap.c.o
    [ 87%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/nclist.c.o
    [ 88%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/nclistmgr.c.o
    [ 88%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/nclog.c.o
    [ 89%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/nctime.c.o
    [ 89%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/ncuri.c.o
    [ 90%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/utf8proc.c.o
    [ 90%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/doffsets.c.o
    [ 91%] Building C object lib/external/netcdf/CMakeFiles/netcdf.dir/libdispatch/dinfermodel.c.o
    [ 91%] Built target netcdf
    Scanning dependencies of target tng_io
    [ 91%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/bwlzh.c.o
    [ 92%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/bwt.c.o
    [ 92%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/coder.c.o
    [ 93%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/dict.c.o
    [ 93%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/fixpoint.c.o
    [ 94%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/huffman.c.o
    [ 94%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/huffmem.c.o
    [ 95%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/lz77.c.o
    [ 95%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/merge_sort.c.o
    [ 95%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/mtf.c.o
    [ 96%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/rle.c.o
    [ 96%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/tng_compress.c.o
    [ 97%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/vals16.c.o
    [ 97%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/warnmalloc.c.o
    [ 98%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/widemuldiv.c.o
    [ 98%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/xtc2.c.o
    [ 99%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/compression/xtc3.c.o
    [ 99%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/lib/tng_io.c.o
    [ 99%] Building C object lib/external/tng/CMakeFiles/tng_io.dir/src/lib/md5.c.o
    [ 99%] Built target tng_io
    Scanning dependencies of target molfiles
    [ 99%] Building C object lib/external/molfiles/CMakeFiles/molfiles.dir/src/dcdplugin.c.o
    [100%] Building CXX object lib/external/molfiles/CMakeFiles/molfiles.dir/src/gromacsplugin.cxx.o
    [100%] Building C object lib/external/molfiles/CMakeFiles/molfiles.dir/src/lammpsplugin.c.o
    [100%] Building C object lib/external/molfiles/CMakeFiles/molfiles.dir/src/moldenplugin.c.o
    [100%] Built target molfiles
    Scanning dependencies of target chemfiles
    [100%] Linking CXX shared library libchemfiles.so
    [100%] Built target chemfiles
    Scanning dependencies of target build_chemfiles
    [100%] Built target build_chemfiles
    Install the project...
    -- Install configuration: "Release"
    -- Installing: /tikhome/stovey/work/Repositories/chemfiles.py/_skbuild/linux-x86_64-3.8/cmake-install/chemfiles/libchemfiles.so.0.10.0
    -- Installing: /tikhome/stovey/work/Repositories/chemfiles.py/_skbuild/linux-x86_64-3.8/cmake-install/chemfiles/libchemfiles.so
    
    
    --------------------------------------------------------------------------------
    -- Trying "Ninja" generator
    --------------------------------
    ---------------------------
    ----------------------
    -----------------
    ------------
    -------
    --
    --
    -------
    ------------
    -----------------
    ----------------------
    ---------------------------
    --------------------------------
    -- Trying "Ninja" generator - failure
    --------------------------------------------------------------------------------
    
    
    
    --------------------------------------------------------------------------------
    -- Trying "Unix Makefiles" generator
    --------------------------------
    ---------------------------
    ----------------------
    -----------------
    ------------
    -------
    --
    --
    -------
    ------------
    -----------------
    ----------------------
    ---------------------------
    --------------------------------
    -- Trying "Unix Makefiles" generator - success
    --------------------------------------------------------------------------------
    
    Configuring Project
      Working directory:
        /tikhome/stovey/work/Repositories/chemfiles.py/_skbuild/linux-x86_64-3.8/cmake-build
      Command:
        cmake /tikhome/stovey/work/Repositories/chemfiles.py -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX:PATH=/tikhome/stovey/work/Repositories/chemfiles.py/_skbuild/linux-x86_64-3.8/cmake-install -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 -DPYTHON_VERSION_STRING:STRING=3.8.10 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.8 -DPYTHON_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libpython3.8.so -DSKBUILD:BOOL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-g_zqicro/overlay/lib/python3.8/site-packages/skbuild/resources/cmake -DCMAKE_BUILD_TYPE:STRING=Release
    
    copying _skbuild/linux-x86_64-3.8/cmake-install/chemfiles/libchemfiles.so.0.10.0 -> chemfiles/libchemfiles.so.0.10.0
    copying _skbuild/linux-x86_64-3.8/cmake-install/chemfiles/libchemfiles.so -> chemfiles/libchemfiles.so
    
    running develop
    WARNING: The user site-packages directory is disabled.
    error: can't create or remove files in install directory
    
    The following error occurred while trying to add or remove files in the
    installation directory:
    
        [Errno 13] Permission denied: '/usr/local/lib/python3.8/dist-packages'
    
    The installation directory you specified (via --install-dir, --prefix, or
    the distutils default setting) was:
    
        /usr/local/lib/python3.8/dist-packages/
    
    This directory does not currently exist.  Please create it and try again, or
    choose a different installation directory (using the -d or --install-dir
    option).
    
    ----------------------------------------
  Rolling back uninstall of chemfiles
  Moving to /tikhome/stovey/.local/lib/python3.8/site-packages/chemfiles-0.10.0.dist-info/
   from /tikhome/stovey/.local/lib/python3.8/site-packages/~hemfiles-0.10.0.dist-info
  Moving to /tikhome/stovey/.local/lib/python3.8/site-packages/chemfiles/
   from /tikhome/stovey/.local/lib/python3.8/site-packages/~hemfiles
ERROR: Command errored out with exit status 1: /usr/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tikhome/stovey/work/Repositories/chemfiles.py/setup.py'"'"'; __file__='"'"'/tikhome/stovey/work/Repositories/chemfiles.py/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps --user --prefix= Check the logs for full command output.

I do not see anythng in the setup.py that would force this so I would assume that there is some argument in the compile pipe. Perhaps whilst the python package knows it can be referenced from the users directory, the cpp library does not?

Add implementations of __repr__ for all types

Currently, chemfiles types are not formatted, and appear as <chemfiles.frame.Frame at 0x7f1074144e50> on the REPL or jupyter notebooks. We should implement the __repr__ special method to format the corresponding data.

Here is a tentative formatting for all types

>>> Atom("He")

Atom("He")

>>> Residue("Bar")

Residue("Bar", None)

>>> UnitCell(3, 4, 5)

UnitCell(3, 4, 5, 90, 90, 90)

>>> Topology()

Topology with 0 atoms

>>> Frame()

Frame with 0 atoms

>>> Trajectory("foo.xyz")

Trajectory("foo.xyz", "r", None)

[chemfiles 0.10.4] Cannot find libchemfiles.dll

Windows CI on MDAnalysis is failing with:

Could not find module 'C:\hostedtoolcache\windows\Python\3.11.3\x64\Lib\site-packages\chemfiles\libchemfiles.dll' (or one of its dependencies).

when installing with the newly uploaded pypi release for v0.10.4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.