Personal website of Lucio Rezende Queiroz
luciorq / condathis Goto Github PK
View Code? Open in Web Editor NEWCondathis: run any CLI tool on a Conda Environment
Home Page: https://github.com/luciorq/condathis
License: Other
Condathis: run any CLI tool on a Conda Environment
Home Page: https://github.com/luciorq/condathis
License: Other
This is an improvement request by @c1au6i0.
Currently, the package has the condathis::create_env()
function for creating conda environments for use by the condathis::run()
function.
Ideally, an opposite condathis::remove_env()
should also exist to remove conda environments.
The proposed solution would be to use "native" as the default for the method
argument for create_env()
and run()
when Linux x86_64 environments are detected.
The main use case here targets HPC infrastructure that primarily runs on Linux x86_64.
Also, most of the CLI tools would be available in a native format, at least for bioinformatics-related tools.
With version 0.0.2.9003
, error launching run
:
condathis::create_env("gsutil", env_name = "gsutil-env", method = "native")
#> Running /Users/heverz/.local/share/condathis/micromamba/bin/micromamba create \
#> -r /Users/heverz/.local/share/condathis -c bioconda -c conda-forge -c \
#> defaults -n gsutil-env --yes --quiet gsutil
condathis::run("gsutil", "--help", env_name = "gsutil-env")
#> Usage: gsutil [-D] [-DD] [-h header]... [-i service_account] [-m] [-o section:flag=value]... [-q] [-u user_project] [command [opts...] args...]
#> Available commands:
#> acl Get, set, or change bucket and/or object ACLs
#> autoclass Configure Autoclass feature
#> bucketpolicyonly Configure uniform bucket-level access
#> cat Concatenate object content to stdout
#> compose Concatenate a sequence of objects into a new composite object.
#> config Obtain credentials and create configuration file
#> cors Get or set a CORS configuration for one or more buckets
#> cp Copy files and objects
#> defacl Get, set, or change default ACL on buckets
#> defstorageclass Get or set the default storage class on buckets
#> du Display object size usage
#> hash Calculate file hashes
#> help Get help about commands and topics
#> hmac CRUD operations on service account HMAC keys.
#> iam Get, set, or change bucket and/or object IAM permissions.
#> kms Configure Cloud KMS encryption
#> label Get, set, or change the label configuration of a bucket.
#> lifecycle Get or set lifecycle configuration for a bucket
#> logging Configure or retrieve logging on buckets
#> ls List providers, buckets, or objects
#> mb Make buckets
#> mv Move/rename objects
#> notification Configure object change notification
#> pap Configure public access prevention
#> perfdiag Run performance diagnostic
#> rb Remove buckets
#> requesterpays Enable or disable requester pays for one or more buckets
#> retention Provides utilities to interact with Retention Policy feature.
#> rewrite Rewrite objects
#> rm Remove objects
#> rpo Configure replication
#> rsync Synchronize content of two buckets/directories
#> setmeta Set metadata on already uploaded objects
#> signurl Create a signed URL
#> stat Display object status
#> test Run gsutil unit/integration tests (for developers)
#> ubla Configure Uniform bucket-level access
#> version Print version info about gsutil
#> versioning Enable or suspend versioning for one or more buckets
#> web Set a website configuration for a bucket
#>
#> Additional help topics:
#> acls Working With Access Control Lists
#> crc32c CRC32C and Installing crcmod
#> creds Credential Types Supporting Various Use Cases
#> dev Contributing Code to gsutil
#> encoding Filename encoding and interoperability problems
#> metadata Working With Object Metadata
#> naming Object and Bucket Naming
#> options Global Command Line Options
#> prod Scripting Production Transfers
#> security Security and Privacy Considerations
#> shim Shim for Running gcloud storage
#> support Google Cloud Storage Support
#> versions Object Versioning and Concurrency Control
#>
#> Use gsutil help <command or topic> for detailed help.
#> Error in c("processx::run(command = fs::path_real(umamba_bin_path), args = c(\"run\", ", : ! System command 'micromamba' failed
The function condathis::run
does not allow redirection with >
:
condathis::run("echo", "pippo", ">", "pippo.txt", env_name =
my-env)
This could be implemented exposing the stdout
argument of processx::run
:
processx::run(
command = "ls"
, stdout = "file.txt"
)
WHY: some bioinformatics tools use >
to write files (i.e. minimap2 align
, samtools
...)
condathis::list_envs()
is listing environments installed in the system, that are not managed by condathis::run()
.
Pointed out by: @c1au6i0
On method = "singularity"
, apptainer exec
is erroring with read-only FS on user bound directory.
Apptainer version 1.1.6-1.el7 on "CentOS Linux 7 (Core)".
It also doesn't happen with Sylabs Singularity version 3.7.3-1.el7 in the same HPC environment.
This error doesn't happen on Apptainer version 1.0.1 on "Ubuntu 22.04 LTS".
Initially, the "command + method" cache mechanism was implemented as a mechanism to speed up the method = "auto"
.
It would validate that a command/package is available for that backend/architecture.
But for heterogeneous infrastructures, like clusters, cloud boosters, etc., it leads to more problems than benefits. In the sense that a cache would be detrimental if new backends should be discovered "on the go".
Current behavior: environments manually created by the user are being listed together with the environments.
Desired behavior: condathis::env_list()
should list only environments that are managed by condathis
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.