1661384580
Qlab.jl
Data manipulation and analysis tools tailored for quantum computing experiments in conjunction with Auspex. Currently working with Julia v1.0.
(v1.3) pkg> add https://github.com/BBN-Q/Qlab.jl
The code base also uses some system tools and python libraries for building libraries and plotting data with PyPlot.jl. You'll want to make sure your system has these.
In CentOS:
yum -y install epel-release
yum install gcc gcc-c++ make bzip2 hdf5 libaec libgfortran libquadmath
In Ubuntu/Debian:
apt-get install gcc g++ gcc-7-base make libaec0 libgfortran4 libhdf5-100 libquadmath0 libsz2
You'll need a working version of PyPlot. In some cases the package manager has trouble getting this right on all systems/OSs. If you run into issues, we recommend using Conda.jl manually:
using Pkg
Pkg.add("PyCall")
Pkg.add("Conda")
ENV["PYTHON"] = ""
Pkg.build("PyCall")
using Conda
Conda.add("matplotlib")
Conda.add("seaborn")
Pkg.add("PyPlot")
In most cases, Julia should take care of this for you.
Qlab.jl depends on several other Julia packages that have biniary dependencies. These should mostly be taken care of by the package manager. One important exception is HDF5 and its libhdf5 dependancy. This library manages the handling of HDF5 files and is currently maintained for backwards compatibility. The version of libhdf5 which produced any data files you want to analyze must match the library version used to create the files. You may need to add the path the the right version of libhdf5 to the Libdl path in Julia and rebuild HDF5:
push!(Libdl.DL_LOAD_PATH, "/opt/local/lib")
Pkg.build("HDF5")
where /opt/local/lib
is the path to the correct version of libhdf5. See the documentation from HDF5.jl for more details. Currently only version of hdf5 1.8.2 - 1.8.17 are supported. If you're not planning to use HDF5 files, you shouldn't have to worry about the library versions matching.
Raytheon BBN Technologies.
Author: BBN-Q
Source Code: https://github.com/BBN-Q/Qlab.jl
License: View license
1661384580
Qlab.jl
Data manipulation and analysis tools tailored for quantum computing experiments in conjunction with Auspex. Currently working with Julia v1.0.
(v1.3) pkg> add https://github.com/BBN-Q/Qlab.jl
The code base also uses some system tools and python libraries for building libraries and plotting data with PyPlot.jl. You'll want to make sure your system has these.
In CentOS:
yum -y install epel-release
yum install gcc gcc-c++ make bzip2 hdf5 libaec libgfortran libquadmath
In Ubuntu/Debian:
apt-get install gcc g++ gcc-7-base make libaec0 libgfortran4 libhdf5-100 libquadmath0 libsz2
You'll need a working version of PyPlot. In some cases the package manager has trouble getting this right on all systems/OSs. If you run into issues, we recommend using Conda.jl manually:
using Pkg
Pkg.add("PyCall")
Pkg.add("Conda")
ENV["PYTHON"] = ""
Pkg.build("PyCall")
using Conda
Conda.add("matplotlib")
Conda.add("seaborn")
Pkg.add("PyPlot")
In most cases, Julia should take care of this for you.
Qlab.jl depends on several other Julia packages that have biniary dependencies. These should mostly be taken care of by the package manager. One important exception is HDF5 and its libhdf5 dependancy. This library manages the handling of HDF5 files and is currently maintained for backwards compatibility. The version of libhdf5 which produced any data files you want to analyze must match the library version used to create the files. You may need to add the path the the right version of libhdf5 to the Libdl path in Julia and rebuild HDF5:
push!(Libdl.DL_LOAD_PATH, "/opt/local/lib")
Pkg.build("HDF5")
where /opt/local/lib
is the path to the correct version of libhdf5. See the documentation from HDF5.jl for more details. Currently only version of hdf5 1.8.2 - 1.8.17 are supported. If you're not planning to use HDF5 files, you shouldn't have to worry about the library versions matching.
Raytheon BBN Technologies.
Author: BBN-Q
Source Code: https://github.com/BBN-Q/Qlab.jl
License: View license
1661965440
Julia wrapper for the Generic Mapping Tools GMT
The Generic Mapping Tools, GMT, is an open source collection of tools for manipulating geographic and Cartesian data sets (including filtering, trend fitting, gridding, projecting, etc.) and producing PostScript illustrations ranging from simple x–y plots via contour maps to artificially illuminated surfaces and 3D perspective views. This link will take you to an impressive collection of figures made with GMT
This wrapper works with GMT6.1.0 and above and it is intended not only to access to GMT from within the Julia language but also to provide a more modern interface to the GMT modules. For example, instead of using the GMT classic syntax to do a line plot:
gmt psxy filename -R0/10/0/5 -JX12 -W1p -Ba -P > psfile.ps
one can simply do:
plot("filename", show=true)
or, more verbose but easier to read
coast(region=:global, proj=:Winkel, frame=:g, area=10000,
land=:burlywood4, water=:wheat1, show=true)
instead of
gmt coast -Rd -JR12 -Bg -Dc -A10000 -Gburlywood4 -Swheat1 -P > GMT_winkel.ps
to show
Install
] add GMT
A word of warning about the installation. It is recommended that you install the GMT program in your system as explained bellow. If you do this then the GMT.jl wrapper will be able to find it. However, if you don't care about disk space usage and some extra >4 GB are no worries for you then on Unix (Mac and Linux) if the wrapper doesn't find GMT, it will install one automatically via Conda. On Windows the installation is done with the Windows installer and no such huge waste takes place. One may also force the automatic installation by setting the environment variable FORCE_INSTALL_GMT
Windows64 Install the GMT6 version
Windows32 ..._win32.exe
Unix
Follow instructions at https://github.com/GenericMappingTools/gmt/blob/master/INSTALL.md
Since GMT produces PostScript you need a PS interpreter. Windows installer comes with ghostcript but on Mac/Linux you need to:
Install Ghostscript
and ghostview
at https://ghostscript.com/releases/gsdnld.html
Using
The GMT Julia wrapper was designed to work in a way the close as possible to the command line version and yet to provide all the facilities of the Julia language. In this sense, all GMT options are put in a single text string that is passed, plus the data itself when it applies, to the gmt()
command. However, we also acknowledge that not every one is comfortable with the GMT syntax. This syntax is needed to accommodate the immense pool of options that let you control all details of a figure but that also makes it harder to read/master.
To make life easier we provide also a new mechanism that use the GMT module name directly and where the program's options are set via keyword arguments. While the monolotic way of using this package is robust and keeps being updated to latestes GMT developments, this By modules alternative is a Work in Progress (several of the GMT supplements were not ported yet) and some things may not work yet. So all help is most than wellcome.
Credits
A lot of the GDAL interface functions rely on code from GDAL.jl by Martijn Visser and ArchGDAL.jl by Yeesian Ng, released under the MIT license.
Author: GenericMappingTools
Source Code: https://github.com/GenericMappingTools/GMT.jl
License: View license
1668217680
Lint.jl is a tool that uses static analysis to assist in the development process by detecting common bugs and potential issues.
Lint.jl can be installed through the Julia package manager:
Pkg.add("Lint")
There are 3 functions you can use to lint your code.
lintpkg("MyPackage")
for linting an entire packagelintfile("my_file.jl")
for linting a filelintstr("my string")
for linting a stringDetailed documentation is available for:
Author: Tonyhffong
Source Code: https://github.com/tonyhffong/Lint.jl
License: View license
1660983720
PkgDev provides tools for Julia package developers. The package is currently being rewritten for Julia 1.x and only for brave early adopters.
Tag a new release for package package_name
. The package you want to tag must be deved in the current Julia environment. You pass the package name package_name
as a String
. The git commit that is the HEAD
in the package folder will form the basis for the version to be tagged.
If you don't specify a version
, then the version
field in the Project.toml
must have the format x.y.z-DEV
, and the command will tag version x.y.z
as the next release. Alternatively you can specify one of :major
, :minor
or :patch
for the version
parameter. In that case PkgDev.tag
will increase that part of the version number by 1 and tag that version. Finally, you can also specify a full VersionNumber
as the value for the version
parameter, in which case that version will be tagged.
The only situation where you would specify a value for registry
is when you want to register a new package for the first time in a registry that is not General
. In all other situations, PkgDev.tag
will automatically figure out in which registry your package is registered. When you do pass a value for registry
, it should simply be the short name of a registry that is one of the registries your local system is connected with.
If you want to add custom release notes for TagBot, do so with the release_notes
keyword.
PkgDev.tag
runs through the following process when it tags a new version:
release-x.y.z
.Project.toml
and commit that change on the release branch.Project.toml
to x.y.z+1-DEV
and commit that change also to the release branch. 4a. For packages in the General registry: add a comment that triggers Registrator. 4b. For packages in other registries: Open a pull request against the registry that tags the first new commit on the release branch as a new version x.y.z
.master
.If you have TagBot installed for your package with the branches: true
setting, it will automatically merge the release-x.y.z
branch into master
once the pull request for the registry has been merged. If you use the package butler (desribed below) it auto-configures your repository for this workflow.
Enables the Julia Package Butler for package package_name
. The package must be deved in the current Julia environment. The command will make various modifications to the files in the deved folder of the package. You then then need to commit these changes and push them to GitHub. The command will also add a deploy key to the GitHub repository of the package and show instructions on how to add two GitHub Actions secrets to the repository.
The channel
argument can be :auto
, :stable
or :dev
. There are two channels of updates: stable
and dev
. The dev
channel will run the Julia Package Butler workflow every 5 minutes and it will use the master
branch of the Julia Packge Butler engine, i.e. it will get new features more quickly. The stable
branch runs the Julia Package Butler workflow every hour, and new features in the Julia Package Butler engine are only pushed out to the stable channel once they have been tested for a while on the dev
channel. If you specify :auto
as the argument, any existing channel choice you have previously made for the package will be retained, otherwise the package will be configure for the stable
channel.
The template
argument can be :auto
, :default
or :bach
. Different templates will configure different aspects of your package. At this point everyone should use the :default
template (or :auto
template), everything else is considered experimental.
Switch the Julia Package Butler channel for package package_name
. The package you want to tag must be deved in the current Julia environment and the Julia Package Butler must already be enabled for the package. The channel
argument can be :auto
, :stable
or :dev
, see the documentation for PkgDev.enable_pkgbutler
for an explanation of the different channels.
Switch the Julia Package Butler template for package package_name
. The package you want to tag must be deved in the current Julia environment and the Julia Package Butler must already be enabled for the package. The template
argument can be :auto
, :default
or :bach
.
Format all the Julia source code files for the package with name package_name
. The package you want to format must be deved in the current Julia environment. This function uses DocumentFormat.jl.
Author: JuliaLang
Source Code: https://github.com/JuliaLang/PkgDev.jl
License: View license
1660991410
This package contains tools for analyzing Julia packages.
For now, it provides tools to build a highly simplified package search engine that can be queried as a service:
Example
Build a simplified search engine service:
using PkgUtils
PkgUtils.runservice()
Run a search website:
cd .julia/PkgUtils
julia scripts/server.jl
open site/index.html
Author: johnmyleswhite
Source Code: https://github.com/johnmyleswhite/PkgUtils.jl