Kedro
tmux
Our great sponsors
Kedro | tmux | |
---|---|---|
29 | 205 | |
9,288 | 32,600 | |
1.4% | 2.4% | |
9.7 | 8.3 | |
6 days ago | 4 days ago | |
Python | C | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Kedro
-
Nextflow: Data-Driven Computational Pipelines
Interesting, thanks for sharing. I'll definitely take a look, although at this point I am so comfortable with Snakemake, it is a bit hard to imagine what would convince me to move to another tool. But I like the idea of composable pipelines: I am building a tool (too early to share) that would allow to lay Snakemake pipelines on top of each other using semi-automatic data annotations similar to how it is done in kedro (https://github.com/kedro-org/kedro).
-
A Polars exploration into Kedro
# pyproject.toml [project] dependencies = [ "kedro @ git+https://github.com/kedro-org/kedro@3ea7231", "kedro-datasets[pandas.CSVDataSet,polars.CSVDataSet] @ git+https://github.com/kedro-org/kedro-plugins@3b42fae#subdirectory=kedro-datasets", ]
-
What are some open-source ML pipeline managers that are easy to use?
So there's 2 sides to pipeline management: the actual definition of the pipelines (in code) and how/when/where you run them. Some tools like prefect or airflow do both of them at once, but for the actual pipeline definition I'm a fan of https://kedro.org. You can then use most available orchestrators to run those pipelines on whatever schedule and architecture you want.
-
Futuristic documentation systems in Python, part 1: aiming for more
Recently I started a position as Developer Advocate for Kedro, an opinionated data science framework, and one of the things we're doing is exploring what are the best open source tools we can use to create our documentation.
-
Python projects with best practices on Github?
You can also check out Kedro, itβs like the Flask for data science projects and helps apply clean code principles to data science code.
- What are examples of well-organized data science project that I can see on Github?
-
Dabbling with Dagster vs. Airflow
An often overlooked framework used by NASA among others is Kedro https://github.com/kedro-org/kedro. Kedro is probably the simplest set of abstractions for building pipelines but it doesn't attempt to kill Airflow. It even has an Airflow plugin that allows it to be used as a DSL for building Airflow pipelines or plug into whichever production orchestration system is needed.
-
What are some good DS/ML repos where I can learn about structuring a DS/ML project?
For the lazy ones out there, here's the link to their github repo.
- Kedro β Creating reproducible, maintainable and modular data science code
-
[Discussion] Applied machine learning implementation debate. Is OOP approach towards data preprocessing in python an overkill?
I'd focus more on understanding the issues in depth, before jumping to a solution. Otherwise, you would be adding hassle with some - bluntly speaking - opinionated and inflexible boilerplate code which not many people will like using. You mention some issues: non-obvious to understand code and hard to execute and replicate. Bad code which is not following engineering best practices (ideas from SOLID etc.) does not get better if you force the author to introduce certain classes. You can suggest some basics (e.g. common code formatter, meaningful variables names, short functions, no hard-coded values, ...), but I'm afraid you cannot educate non-engineers in a single day workshop. I would not focus on that at first. However, there is no excuse for writing bad code and then expecting others to fix. As you say, data engineering is part of data science skills, you are "junior" if you cannot write reproducible code. Being hard to execute and replicate is theoretically easy to fix. Force everyone to (at least hypothetically) submit their code into a testing environment where it will be automatically executed on a fresh machine. This will mean that at first they have to exactly specify all libraries that need to be installed. Second, they need to externalize all configuration - in particular data input and data output paths. Not a single value should be hard-coded in code! And finally they need a *single* command which can be run to execute the whole(!) pipeline. If they fail on any of these parts... they should try again. Work that does not pass this test is considered unfinished by the author. Basically you are introducing an automated, infallible test. Regarding your code, I'd really not try that direction. In particular even these few lines already look unclear and over-engineered. The csv format is already hard-coded into the code. If it changes to parquet you'd have to touch the code. The processing object has data paths fixed for which is no reason in a job which should take care of pure processing. Export data is also not something that a processing job should handle. And what if you have multiple input and output data? You would not have all these issues if you had kept to most simple solution to have a function `process(data1, data2, ...) -> result_data` where dataframes are passed in and out. It would also mean to have zero additional libraries or boilerplate. I highly doubt that a function `main_pipe(...)` will fix the malpractices some people may do. There are two small feature which are useful beyond a plain function though: automatically generating a visual DAG from the code and quick checking if input requirements are satisfied before heavy code is run. You can still put any mature DAG library on top, which probably already includes experience from a lot of developers. Not need to rewrite that. I'm not sure which one is best (metaflow, luigi, airflow, ... https://github.com/pditommaso/awesome-pipeline no idea), but many come with a lot of features. If you want a bit more scaffolding to easier understand foreign projects, you could look at https://github.com/quantumblacklabs/kedro but maybe that's already too much. Fix the "single command replication-from-scratch requirement" first.
tmux
-
Easy Access to Terminal Commands in Neovim using FTerm
Having a common set of tools already set up in different windows or sessions in Tmux or Zellij is obviously an option, but there is a subset of us ( π ) that would rather just have fingertip access to our common tools inside of our editor.
-
Zellij β A terminal workspace with batteries included (tmux alternative)
After having spent too much time trying to get the simple https://github.com/csdvrx/sixel-tmux/ features into mainline tmux (last November https://github.com/tmux/tmux/issues/3753), maybe it'd be easier to jump ship as use zellij?
Could anyone offer recommendations on "riced" zellij configuations, or just a demo where it shows doing with (say charts of disk usage per folder), watching a movie with mpv + keeping a vim to type on?
-
Automating the startup of a dev workflow
Well, I now use tmux and tmuxinator. I have had many failed tmux attempts over the years, but I'm firmly bedded in now.
-
Clipboards, Terminals, and Linux
Which leads me to clipboards. Linux has two of them! Adding to the interest, I typically use Neovim remotely, via an SSH connection to a Tmux session. And on my Linux system, I use urxvt as my terminal program. All of these are very UNIX-y tools, and somehow they all need to play nicely together.
-
Connecting Debugger to Rails Applications
The downside of overmind is that it requires tmux, which is a terminal multiplexer tool. If you don't already use tmux, I'd say it's probably not worth learning it just for the purposes of using overmind. But if you're like me and already know/use tmux, this can be a great solution to pursue.
- Enchula Mi Consola
-
Pimp your CLI
As a developer, the command line is one of the tools you will be using most frequently. It can be intimidating to venture into the world of CLI tooling but I can assure you it is one of the most rewarding experiences too. In this post I want to walk ya'll through my personal CLI setup. It is based on 3 technologies which I'll coin as the "Holy Trinity" of the command line: TMUX, ZSH, & Neovim.
-
Day 5 - More or less...
After that, you can go up a notch and try to have several shell sessions open at the same time in the same terminal window with a terminal multiplexer. Try screen - that's a little simpler and maybe too terse in the beginning - or tmux, that have many features and colors. There are so much material out there on "how to customize your tmux", have fun.
-
How would you work effectively with an extremely slow 56Kbps connection?
A few days ago I made a suggestion to work around any possible issues but it's up to the main tmux maintainer to decide what to do.
-
NeoVim Capability Functions
For splitting the terminal you could try either toggleterm or tmux. If you want to send things from one tmux pane to another, then you can use slime. For a toggle-able filetree, you can use nvim tree.
What are some alternatives?
Airflow - Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
zellij - A terminal workspace with batteries included
luigi - Luigi is a Python module that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization etc. It also comes with Hadoop support built in.
kitty - Cross-platform, fast, feature-rich, GPU based terminal
tilix - A tiling terminal emulator for Linux using GTK+ 3
Dask - Parallel computing with task scheduling
cookiecutter-pytorch - A Cookiecutter template for PyTorch Deep Learning projects.
toggleterm.nvim - A neovim lua plugin to help easily manage multiple terminal windows
i3 - A tiling window manager for X11
ploomber - The fastest β‘οΈ way to build data pipelines. Develop iteratively, deploy anywhere. βοΈ
Mosh - Mobile Shell
BentoML - Build Production-Grade AI Applications