aops-apollo-toolx86_64063a032bd536aec47e58c4cf1c0fe5bfb7dea91e42c3be0575add83c328f1dd9Small tools for aops-apollo, e.g. updateinfo.xml generatersmalltools for aops-apollo, e.g.updateinfo.xml generaterhttps://gitee.com/openeuler/aops-apolloMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843834-20251014-01255aops-apollo-v2.2.0-1.src.rpm/etc/aops_apollo_tool/updateinfo_config.ini/usr/bin/gen-updateinfoaops-apollosrc4f80bb13a284f85377246fc9f230f5e90769217e6400afd3e1d4f90b8492d466Cve management service, monitor machine vulnerabilities and provide fix functions.Cve management service, monitor machine vulnerabilities and provide fix functions.https://gitee.com/openeuler/aops-apolloMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843834-20251014-01255aops-apollox86_64414dd3436c4a42fd485c94f26d1bc16b59da2094f07c8d8de01c88f6a3cb56d8Cve management service, monitor machine vulnerabilities and provide fix functions.Cve management service, monitor machine vulnerabilities and provide fix functions.https://gitee.com/openeuler/aops-apolloMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843834-20251014-01255aops-apollo-v2.2.0-1.src.rpm/etc/aops/conf.d/aops-apollo.ymlaops-ceressrc5cacc9e31045c5abec9caf6b0a5ecaf2fe119afc90d28326b8734f83f5d45f93An agent which needs to be adopted in client, it managers some plugins, such as gala-gopher(kpi collection), fluentd(log collection) and so on.An agent which needs to be adopted in client, it managers some plugins, such as gala-gopher(kpi collection), fluentd(log collection) and so on.https://gitee.com/openeuler/aops-ceresMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843825-20251013-09333aops-ceresx86_64946d92055a1c66a86ee6a6cd30497ac5e3ed7e1dec75e4377417dd71e666d59eAn agent which needs to be adopted in client, it managers some plugins, such as gala-gopher(kpi collection), fluentd(log collection) and so on.An agent which needs to be adopted in client, it managers some plugins, such as gala-gopher(kpi collection), fluentd(log collection) and so on.https://gitee.com/openeuler/aops-ceresMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843825-20251013-09333aops-ceres-v2.2.0-1.src.rpm/etc/aops/ceres.conf/usr/bin/aops-ceresaops-hermessrcd84e574a17d2530e7cc0962e805bcbadaa58a4475501356f0fc6d105b22a6130Web for an intelligent diagnose frameWeb for an intelligent diagnose framehttps://gitee.com/openeuler/aops-hermesMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843834-20251014-01255aops-hermesx86_64df3061ef8c6f1e1fad7fa9a930c6fdcc749ca4ba5ca80f65b5445f29bd32a364Web for an intelligent diagnose frameWeb for an intelligent diagnose framehttps://gitee.com/openeuler/aops-hermesMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843834-20251014-01255aops-hermes-v2.2.0-1.src.rpmaops-toolsx86_64133f53e233c90ba82aa96f65783539467af9053055af731f8002270b9ba9c84baops scriptstools for aops, it's about aops deployhttps://gitee.com/openeuler/aops-vulcanusMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843825-20251013-09333aops-vulcanus-v2.2.0-1.src.rpmaops-vulcanussrc19c4721e8ce861e73b423af2146d88f7c8d7a64e66beac5fc606a6bd2b09a27dA basic tool libraries of aops, including logging, configure and response, etc.A basic tool libraries of aops, including logging, configure and response, etc.https://gitee.com/openeuler/aops-vulcanusMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843825-20251013-09333aops-vulcanusx86_64a045866cbabd4ba4ef83ab61f53934469aaea4300f50b08c300f58b2d311eef3A basic tool libraries of aops, including logging, configure and response, etc.A basic tool libraries of aops, including logging, configure and response, etc.https://gitee.com/openeuler/aops-vulcanusMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843825-20251013-09333aops-vulcanus-v2.2.0-1.src.rpm/etc/aops/aops-config.ymlaops-zeussrc9ecb128025b4e65e86605c8699b2b606c7f139c9c5c924768ad1eea00de44e9aA service which is the foundation of aops.Provide one-click aops deployment, service start and stop, hot loading of
configuration files, and database initialization.
Provides: aops-zeushttps://gitee.com/openeuler/aops-zeusMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843826-20251014-01224aops-zeusx86_64b01c7ac53e42f5aba9dfc4f38ba466dc0d51baf3a5a697b7e125ca519b34a851A service which is the foundation of aops.Provide one-click aops deployment, service start and stop, hot loading of
configuration files, and database initialization.
Provides: aops-zeushttps://gitee.com/openeuler/aops-zeusMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843826-20251014-01224aops-zeus-v2.2.0-1.src.rpm/usr/bin/aops-cliasync-taskx86_642866f7dad13d0a4961f25638f058b4f346546cb443be7aca8f80d732c41b1fb1A async task of aops.A async task of aops.https://gitee.com/openeuler/aops-zeusMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843826-20251014-01224aops-zeus-v2.2.0-1.src.rpm/etc/aops/crontab.yml/etc/aops/sync-conf.d/instance.properties/etc/aops/sync-conf.d/rdb/cve_fix_task.yml/etc/aops/sync-conf.d/rdb/cve_host_match.yml/etc/aops/sync-conf.d/rdb/cve_rollback_task.yml/etc/aops/sync-conf.d/rdb/domain.yml/etc/aops/sync-conf.d/rdb/domain_conf_info.yml/etc/aops/sync-conf.d/rdb/domain_host.yml/etc/aops/sync-conf.d/rdb/host.yml/etc/aops/sync-conf.d/rdb/host_conf_sync_status.yml/etc/aops/sync-conf.d/rdb/host_group.yml/etc/aops/sync-conf.d/rdb/hotpatch_remove_task.yml/etc/aops/sync-conf.d/rdb/repo.yml/etc/aops/sync-conf.d/rdb/task_host_repo.yml/etc/aops/sync-conf.d/rdb/vul_task.yml/usr/bin/async-taskauthHubsrc01ea25359f0e74c5083455fe5a18804e2d93354eb976440d90b5b46cfa48c0a1Authentication authority based on oauth2authhub is a specialized authentication center built on OAuth2, providing robust authentication and authorization capabilities for secure user access control in your applications..https://gitee.com/openeuler/authHubMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843836-20251014-01262authHubx86_643ea1162b309d277da669623615b776e85d89414c3206e14c044767c8812abe18Authentication authority based on oauth2authhub is a specialized authentication center built on OAuth2, providing robust authentication and authorization capabilities for secure user access control in your applications..https://gitee.com/openeuler/authHubMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843836-20251014-01262authHub-v2.2.0-3.src.rpm/etc/aops/conf.d/authhub.yml/etc/nginx/conf.d/authhub.nginx.confauthhub-webx86_642e26d5268d1433e6fa8dc08ff6349f4d42be69fc96a3a8c38ee49d8c813a2151Authentication authority web based on oauth2Authentication authority web based on oauth2https://gitee.com/openeuler/authHubMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843836-20251014-01262authHub-v2.2.0-3.src.rpmdnf-hotpatch-pluginx86_64e510699202b6c07eb22069657fc134c3afbea19b539c39b8c7c5c6a10ae3d13fdnf hotpatch plugindnf hotpatch plugin, it's about hotpatch query and fixhttps://gitee.com/openeuler/aops-ceresMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843825-20251013-09333aops-ceres-v2.2.0-1.src.rpmgala-anteatersrc0d4294960bb691cc8510a9bcba7dc005326d7a1b6807ab26a8442e40943eced1A time-series anomaly detection platform for operating system.Abnormal detection module for A-Ops projecthttps://gitee.com/openeuler/gala-anteaterMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843827-20251014-01232gala-anteaterx86_64af0999a3ade98745b8329cf0c0c8167c2a2cb06bd2dced0e7045706004d2977fA time-series anomaly detection platform for operating system.Abnormal detection module for A-Ops projecthttps://gitee.com/openeuler/gala-anteaterMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843827-20251014-01232gala-anteater-3.0.1-1.src.rpm/etc/gala-anteater/config/gala-anteater.yaml/etc/gala-anteater/config/log.settings.ini/etc/gala-anteater/config/metricinfo.json/etc/gala-anteater/entity/app_entity.json/etc/gala-anteater/entity/pod_entity.json/etc/gala-anteater/entity/vm_entity.json/etc/gala-anteater/module/app_sli_rtt.job.json/etc/gala-anteater/module/container_disruption.job.json/etc/gala-anteater/module/disk_throughput.job.json/etc/gala-anteater/module/jvm_oom.job.json/etc/gala-anteater/module/proc_io_latency.job.json/etc/gala-anteater/module/rca.job.json/etc/gala-anteater/module/slow_node_detection.job.json/etc/gala-anteater/module/sys_io_latency.job.json/etc/gala-anteater/module/sys_nic_loss.job.json/etc/gala-anteater/module/sys_tcp_establish.job.json/etc/gala-anteater/module/sys_tcp_transmission_latency.job.json/etc/gala-anteater/module/usad_model.job.json/usr/bin/gala-anteatergala-gophersrc406ce667e3c2a42c81765dfc38fe899cf7520e8c6df8e3399b2a620e4f4407ebIntelligent ops toolkit for openEulergala-gopher is a low-overhead eBPF-based probes frameworkhttps://gitee.com/openeuler/gala-gopherMulan PSL v2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843840-20251014-01275gala-gopherx86_64d1d3f3f48fcf49bf63e7198294d1ec681085c505960cb5f85922a75b9d814bd3Intelligent ops toolkit for openEulergala-gopher is a low-overhead eBPF-based probes frameworkhttps://gitee.com/openeuler/gala-gopherMulan PSL v2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843840-20251014-01275gala-gopher-2.0.2-2.src.rpm/etc/gala-gopher/extend_probes/cadvisor_probe.conf/etc/gala-gopher/extend_probes/pg_stat_probe.conf/etc/gala-gopher/gala-gopher-custom.json/etc/gala-gopher/gala-gopher.conf/etc/gala-gopher/probes.init/usr/bin/gala-gopher/usr/bin/gopher-ctlgala-gopher-debuginfox86_64d239fe23492fa938bc8e5bc12387486cf310bfe1cb42254208518ba6be8a9f7dDebug information for package gala-gopherThis package provides debug information for package gala-gopher.
Debug information is useful when developing applications that use this
package or when debugging this package.https://gitee.com/openeuler/gala-gopherMulan PSL v2openEuler Copr - user HLG523653667Development/Debugeur-prod-workerlocal-x86-64-normal-prod-00843840-20251014-01275gala-gopher-2.0.2-2.src.rpm/usr/lib/debug/usr/bin/gala-gopher-2.0.2-2.x86_64.debug/usr/lib/debug/usr/bin/gopher-ctl-2.0.2-2.x86_64.debuggala-gopher-debugsourcex86_64346a287c8c4d3d295c25538e67d5737f861c49bb110a48217399b7f2648e49a7Debug sources for package gala-gopherThis package provides debug sources for package gala-gopher.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://gitee.com/openeuler/gala-gopherMulan PSL v2openEuler Copr - user HLG523653667Development/Debugeur-prod-workerlocal-x86-64-normal-prod-00843840-20251014-01275gala-gopher-2.0.2-2.src.rpmgala-inferencex86_641f225c3d692804f0384868cb50ddf28c4bb4a84fcfd06264bae77ab45f9de74eCause inference module for gala-ops projectCause inference module for A-Ops projecthttps://gitee.com/openeuler/gala-spiderMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843836-20251014-01262gala-spider-2.0.1-1.src.rpm/etc/gala-inference/cause-keyword.yaml/etc/gala-inference/ext-observe-meta.yaml/etc/gala-inference/gala-inference.yaml/etc/gala-inference/infer-rule.yaml/usr/bin/gala-inferencegala-opsx86_6434a208a37ab29bf6b9292a6b122a1bd58853d1db2cdadfaecb48c6a64d834ad4gala-anteater/spider/inference installation packageThis package requires gala-anteater/spider/inference, allowing users to install them all at oncehttps://gitee.com/openeuler/gala-spiderMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843836-20251014-01262gala-spider-2.0.1-1.src.rpmgala-spidersrc3ce1d4af6f82d1a3515b48703d1bae3301b530d783ecbd9ce2a73325191e198eOS topological graph storage service and cause inference service for gala-ops projectOS topological graph storage service for gala-ops projecthttps://gitee.com/openeuler/gala-spiderMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843836-20251014-01262gala-spiderx86_64cf507e9c8b66a3863c13bc5cb0661765469e1a41825ef08e817391f9fccb98ecOS topological graph storage service and cause inference service for gala-ops projectOS topological graph storage service for gala-ops projecthttps://gitee.com/openeuler/gala-spiderMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843836-20251014-01262gala-spider-2.0.1-1.src.rpm/etc/gala-spider/ext-observe-meta.yaml/etc/gala-spider/gala-spider.yaml/etc/gala-spider/topo-relation.yaml/usr/bin/spider-storagepython-pandas-flavorsrc2593c96aaffdfc6f938bf65d73543b646e93a06374efd0f92976580876f980caThe easy way to write your own Pandas flavor.
**The easy way to write your own flavor of Pandas**
Pandas 0.23 added a (simple) API for registering accessors with Pandas objects.
Pandas-flavor extends Pandas' extension API by:
1. adding support for registering methods as well.
2. making each of these functions backwards compatible with older versions of Pandas.
***What does this mean?***
It is now simpler to add custom functionality to Pandas DataFrames and Series.
Import this package. Write a simple python function. Register the function using one of the following decorators.
***Why?***
Pandas is super handy. Its general purpose is to be a "flexible and powerful data analysis/manipulation library".
**Pandas Flavor** allows you add functionality that tailors Pandas to specific fields or use cases.
Maybe you want to add new write methods to the Pandas DataFrame? Maybe you want custom plot functionality? Maybe something else?
Accessors (in pandas) are objects attached to a attribute on the Pandas DataFrame/Series
that provide extra, specific functionality. For example, `pandas.DataFrame.plot` is an
accessor that provides plotting functionality.
Add an accessor by registering the function with the following decorator
and passing the decorator an accessor name.
```python
import pandas_flavor as pf
@pf.register_dataframe_accessor('my_flavor')
class MyFlavor(object):
def __init__(self, data):
self._data = data
def row_by_value(self, col, value):
"""Slice out row from DataFrame by a value."""
return self._data[self._data[col] == value].squeeze()
```
Every dataframe now has this accessor as an attribute.
```python
import my_flavor
df = pd.DataFrame(data={
"x": [10, 20, 25],
"y": [0, 2, 5]
})
print(df)
df.my_flavor.row_by_value('x', 10)
```
To see this in action, check out [pdvega](https://github.com/jakevdp/pdvega),
[PhyloPandas](https://github.com/Zsailer/phylopandas), and [pyjanitor](https://github.com/ericmjl/pyjanitor)!
Using this package, you can attach functions directly to Pandas objects. No
intermediate accessor is needed.
```python
import pandas_flavor as pf
@pf.register_dataframe_method
def row_by_value(df, col, value):
"""Slice out row from DataFrame by a value."""
return df[df[col] == value].squeeze()
```
```python
import pandas as pd
import my_flavor
df = pd.DataFrame(data={
"x": [10, 20, 25],
"y": [0, 2, 5]
})
print(df)
df.row_by_value('x', 10)
```
The pandas_flavor 0.5.0 release introduced [tracing of the registered method calls](/docs/tracing_ext.md). Now it is possible to add additional run-time logic around registered method execution which can be used for some support tasks. This extension was introduced
to allow visualization of [pyjanitor](https://github.com/pyjanitor-devs/pyjanitor) method chains as implemented in [pyjviz](https://github.com/pyjanitor-devs/pyjviz)
- **register_dataframe_method**: register a method directly with a pandas DataFrame.
- **register_dataframe_accessor**: register an accessor (and it's methods) with a pandas DataFrame.
- **register_series_method**: register a methods directly with a pandas Series.
- **register_series_accessor**: register an accessor (and it's methods) with a pandas Series.
You can install using **pip**:
```
pip install pandas_flavor
```
or conda (thanks @ericmjl)!
```
conda install -c conda-forge pandas-flavor
```
Pull requests are always welcome! If you find a bug, don't hestitate to open an issue or submit a PR. If you're not sure how to do that, check out this [simple guide](https://github.com/Zsailer/guide-to-working-as-team-on-github).
If you have a feature request, please open an issue or submit a PR!
Pandas 0.23 introduced a simpler API for [extending Pandas](https://pandas.pydata.org/pandas-docs/stable/development/extending.html#extending-pandas). This API provided two key decorators, `register_dataframe_accessor` and `register_series_accessor`, that enable users to register **accessors** with Pandas DataFrames and Series.
Pandas Flavor originated as a library to backport these decorators to older versions of Pandas (<0.23). While doing the backporting, it became clear that registering **methods** directly to Pandas objects might be a desired feature as well.[*](#footnote)
<a name="footnote">*</a>*It is likely that Pandas deliberately chose not implement to this feature. If everyone starts monkeypatching DataFrames with their custom methods, it could lead to confusion in the Pandas community. The preferred Pandas approach is to namespace your methods by registering an accessor that contains your custom methods.*
**So how does method registration work?**
When you register a method, Pandas flavor actually creates and registers a (this is subtle, but important) **custom accessor class that mimics** the behavior of a method by:
1. inheriting the docstring of your function
2. overriding the `__call__` method to call your function.https://github.com/Zsailer/pandas_flavorMITopenEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843840-20251014-01275python-pandas-flavor-helpnoarchc94178f03e63791cf98e8bd4ff84d18e0cb27c75a3668bb932d35be1e83672baDevelopment documents and examples for pandas-flavor
**The easy way to write your own flavor of Pandas**
Pandas 0.23 added a (simple) API for registering accessors with Pandas objects.
Pandas-flavor extends Pandas' extension API by:
1. adding support for registering methods as well.
2. making each of these functions backwards compatible with older versions of Pandas.
***What does this mean?***
It is now simpler to add custom functionality to Pandas DataFrames and Series.
Import this package. Write a simple python function. Register the function using one of the following decorators.
***Why?***
Pandas is super handy. Its general purpose is to be a "flexible and powerful data analysis/manipulation library".
**Pandas Flavor** allows you add functionality that tailors Pandas to specific fields or use cases.
Maybe you want to add new write methods to the Pandas DataFrame? Maybe you want custom plot functionality? Maybe something else?
Accessors (in pandas) are objects attached to a attribute on the Pandas DataFrame/Series
that provide extra, specific functionality. For example, `pandas.DataFrame.plot` is an
accessor that provides plotting functionality.
Add an accessor by registering the function with the following decorator
and passing the decorator an accessor name.
```python
import pandas_flavor as pf
@pf.register_dataframe_accessor('my_flavor')
class MyFlavor(object):
def __init__(self, data):
self._data = data
def row_by_value(self, col, value):
"""Slice out row from DataFrame by a value."""
return self._data[self._data[col] == value].squeeze()
```
Every dataframe now has this accessor as an attribute.
```python
import my_flavor
df = pd.DataFrame(data={
"x": [10, 20, 25],
"y": [0, 2, 5]
})
print(df)
df.my_flavor.row_by_value('x', 10)
```
To see this in action, check out [pdvega](https://github.com/jakevdp/pdvega),
[PhyloPandas](https://github.com/Zsailer/phylopandas), and [pyjanitor](https://github.com/ericmjl/pyjanitor)!
Using this package, you can attach functions directly to Pandas objects. No
intermediate accessor is needed.
```python
import pandas_flavor as pf
@pf.register_dataframe_method
def row_by_value(df, col, value):
"""Slice out row from DataFrame by a value."""
return df[df[col] == value].squeeze()
```
```python
import pandas as pd
import my_flavor
df = pd.DataFrame(data={
"x": [10, 20, 25],
"y": [0, 2, 5]
})
print(df)
df.row_by_value('x', 10)
```
The pandas_flavor 0.5.0 release introduced [tracing of the registered method calls](/docs/tracing_ext.md). Now it is possible to add additional run-time logic around registered method execution which can be used for some support tasks. This extension was introduced
to allow visualization of [pyjanitor](https://github.com/pyjanitor-devs/pyjanitor) method chains as implemented in [pyjviz](https://github.com/pyjanitor-devs/pyjviz)
- **register_dataframe_method**: register a method directly with a pandas DataFrame.
- **register_dataframe_accessor**: register an accessor (and it's methods) with a pandas DataFrame.
- **register_series_method**: register a methods directly with a pandas Series.
- **register_series_accessor**: register an accessor (and it's methods) with a pandas Series.
You can install using **pip**:
```
pip install pandas_flavor
```
or conda (thanks @ericmjl)!
```
conda install -c conda-forge pandas-flavor
```
Pull requests are always welcome! If you find a bug, don't hestitate to open an issue or submit a PR. If you're not sure how to do that, check out this [simple guide](https://github.com/Zsailer/guide-to-working-as-team-on-github).
If you have a feature request, please open an issue or submit a PR!
Pandas 0.23 introduced a simpler API for [extending Pandas](https://pandas.pydata.org/pandas-docs/stable/development/extending.html#extending-pandas). This API provided two key decorators, `register_dataframe_accessor` and `register_series_accessor`, that enable users to register **accessors** with Pandas DataFrames and Series.
Pandas Flavor originated as a library to backport these decorators to older versions of Pandas (<0.23). While doing the backporting, it became clear that registering **methods** directly to Pandas objects might be a desired feature as well.[*](#footnote)
<a name="footnote">*</a>*It is likely that Pandas deliberately chose not implement to this feature. If everyone starts monkeypatching DataFrames with their custom methods, it could lead to confusion in the Pandas community. The preferred Pandas approach is to namespace your methods by registering an accessor that contains your custom methods.*
**So how does method registration work?**
When you register a method, Pandas flavor actually creates and registers a (this is subtle, but important) **custom accessor class that mimics** the behavior of a method by:
1. inheriting the docstring of your function
2. overriding the `__call__` method to call your function.https://github.com/Zsailer/pandas_flavorMITopenEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843840-20251014-01275python-pandas-flavor-0.6.0-1.src.rpmpython-pingouinsrcfcf0857d0d5e4cc5447bc069fd05db793d0c0ea617adbbdaf3b065351d21fcd6Pingouin: statistical package for Python**Pingouin** is an open-source statistical package written in Python 3 and based mostly on Pandas and NumPy. Some of its main features are listed below. For a full list of available functions, please refer to the `API documentation <https://pingouin-stats.org/build/html/api.html#>`_.
1. ANOVAs: N-ways, repeated measures, mixed, ancova
2. Pairwise post-hocs tests (parametric and non-parametric) and pairwise correlations
3. Robust, partial, distance and repeated measures correlations
4. Linear/logistic regression and mediation analysis
5. Bayes Factors
6. Multivariate tests
7. Reliability and consistency
8. Effect sizes and power analysis
9. Parametric/bootstrapped confidence intervals around an effect size or a correlation coefficient
10. Circular statistics
11. Chi-squared tests
12. Plotting: Bland-Altman plot, Q-Q plot, paired plot, robust correlation...
Pingouin is designed for users who want **simple yet exhaustive statistical functions**.
For example, the :code:`ttest_ind` function of SciPy returns only the T-value and the p-value. By contrast,
the :code:`ttest` function of Pingouin returns the T-value, the p-value, the degrees of freedom, the effect size (Cohen's d), the 95% confidence intervals of the difference in means, the statistical power and the Bayes Factor (BF10) of the test.https://pingouin-stats.org/index.htmlGPL-3.0openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843834-20251014-01255python-pingouin-helpnoarch141eb1f53594067c2907a842ac02001c0733ec9a0ee41a4003ed67cf3da04e40Development documents and examples for pingouin**Pingouin** is an open-source statistical package written in Python 3 and based mostly on Pandas and NumPy. Some of its main features are listed below. For a full list of available functions, please refer to the `API documentation <https://pingouin-stats.org/build/html/api.html#>`_.
1. ANOVAs: N-ways, repeated measures, mixed, ancova
2. Pairwise post-hocs tests (parametric and non-parametric) and pairwise correlations
3. Robust, partial, distance and repeated measures correlations
4. Linear/logistic regression and mediation analysis
5. Bayes Factors
6. Multivariate tests
7. Reliability and consistency
8. Effect sizes and power analysis
9. Parametric/bootstrapped confidence intervals around an effect size or a correlation coefficient
10. Circular statistics
11. Chi-squared tests
12. Plotting: Bland-Altman plot, Q-Q plot, paired plot, robust correlation...
Pingouin is designed for users who want **simple yet exhaustive statistical functions**.
For example, the :code:`ttest_ind` function of SciPy returns only the T-value and the p-value. By contrast,
the :code:`ttest` function of Pingouin returns the T-value, the p-value, the degrees of freedom, the effect size (Cohen's d), the 95% confidence intervals of the difference in means, the statistical power and the Bayes Factor (BF10) of the test.https://pingouin-stats.org/index.htmlGPL-3.0openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843834-20251014-01255python-pingouin-0.5.5-1.src.rpmpython-seabornsrc14f08204726e070cc2e980863083a4d1f22c79b303427893609ae6a439cc92b1Statistical data visualizationhttps://pypi.org/project/seaborn/NoneopenEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843829-20251014-01240python-seaborn-helpnoarch4c0f49cf469185eaeb12c68a9b10a83bd49d3105c03ed2fb8e44d98702f20751Development documents and examples for seabornhttps://pypi.org/project/seaborn/NoneopenEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843829-20251014-01240python-seaborn-0.13.2-1.src.rpmpython3-gala-anteaterx86_64aa3292a6c2a8d6c342910affef03ab6327cf7b158b8288575e148ab17004094dPython3 package of gala-anteaterPython3 package of gala-anteaterhttps://gitee.com/openeuler/gala-anteaterMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843827-20251014-01232gala-anteater-3.0.1-1.src.rpmpython3-gala-inferencex86_64e9c274d30129ea86c6da0110e693977ea61e5ce665250d3a464159c76cdb3b27Python3 package of gala-inferencePython3 package of gala-inferencehttps://gitee.com/openeuler/gala-spiderMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843836-20251014-01262gala-spider-2.0.1-1.src.rpmpython3-gala-spiderx86_64cd7bd222fce589bcc0197633a228da47845c8fda984ba7ad4f3131f400c889ebPython3 package of gala-spiderPython3 package of gala-spiderhttps://gitee.com/openeuler/gala-spiderMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843836-20251014-01262gala-spider-2.0.1-1.src.rpmpython3-pandas-flavornoarch62ffba4c06b1d817bcadbcf798a642d0b94c6b27a06541a8ab2cf63c9e6f292aThe easy way to write your own Pandas flavor.
**The easy way to write your own flavor of Pandas**
Pandas 0.23 added a (simple) API for registering accessors with Pandas objects.
Pandas-flavor extends Pandas' extension API by:
1. adding support for registering methods as well.
2. making each of these functions backwards compatible with older versions of Pandas.
***What does this mean?***
It is now simpler to add custom functionality to Pandas DataFrames and Series.
Import this package. Write a simple python function. Register the function using one of the following decorators.
***Why?***
Pandas is super handy. Its general purpose is to be a "flexible and powerful data analysis/manipulation library".
**Pandas Flavor** allows you add functionality that tailors Pandas to specific fields or use cases.
Maybe you want to add new write methods to the Pandas DataFrame? Maybe you want custom plot functionality? Maybe something else?
Accessors (in pandas) are objects attached to a attribute on the Pandas DataFrame/Series
that provide extra, specific functionality. For example, `pandas.DataFrame.plot` is an
accessor that provides plotting functionality.
Add an accessor by registering the function with the following decorator
and passing the decorator an accessor name.
```python
import pandas_flavor as pf
@pf.register_dataframe_accessor('my_flavor')
class MyFlavor(object):
def __init__(self, data):
self._data = data
def row_by_value(self, col, value):
"""Slice out row from DataFrame by a value."""
return self._data[self._data[col] == value].squeeze()
```
Every dataframe now has this accessor as an attribute.
```python
import my_flavor
df = pd.DataFrame(data={
"x": [10, 20, 25],
"y": [0, 2, 5]
})
print(df)
df.my_flavor.row_by_value('x', 10)
```
To see this in action, check out [pdvega](https://github.com/jakevdp/pdvega),
[PhyloPandas](https://github.com/Zsailer/phylopandas), and [pyjanitor](https://github.com/ericmjl/pyjanitor)!
Using this package, you can attach functions directly to Pandas objects. No
intermediate accessor is needed.
```python
import pandas_flavor as pf
@pf.register_dataframe_method
def row_by_value(df, col, value):
"""Slice out row from DataFrame by a value."""
return df[df[col] == value].squeeze()
```
```python
import pandas as pd
import my_flavor
df = pd.DataFrame(data={
"x": [10, 20, 25],
"y": [0, 2, 5]
})
print(df)
df.row_by_value('x', 10)
```
The pandas_flavor 0.5.0 release introduced [tracing of the registered method calls](/docs/tracing_ext.md). Now it is possible to add additional run-time logic around registered method execution which can be used for some support tasks. This extension was introduced
to allow visualization of [pyjanitor](https://github.com/pyjanitor-devs/pyjanitor) method chains as implemented in [pyjviz](https://github.com/pyjanitor-devs/pyjviz)
- **register_dataframe_method**: register a method directly with a pandas DataFrame.
- **register_dataframe_accessor**: register an accessor (and it's methods) with a pandas DataFrame.
- **register_series_method**: register a methods directly with a pandas Series.
- **register_series_accessor**: register an accessor (and it's methods) with a pandas Series.
You can install using **pip**:
```
pip install pandas_flavor
```
or conda (thanks @ericmjl)!
```
conda install -c conda-forge pandas-flavor
```
Pull requests are always welcome! If you find a bug, don't hestitate to open an issue or submit a PR. If you're not sure how to do that, check out this [simple guide](https://github.com/Zsailer/guide-to-working-as-team-on-github).
If you have a feature request, please open an issue or submit a PR!
Pandas 0.23 introduced a simpler API for [extending Pandas](https://pandas.pydata.org/pandas-docs/stable/development/extending.html#extending-pandas). This API provided two key decorators, `register_dataframe_accessor` and `register_series_accessor`, that enable users to register **accessors** with Pandas DataFrames and Series.
Pandas Flavor originated as a library to backport these decorators to older versions of Pandas (<0.23). While doing the backporting, it became clear that registering **methods** directly to Pandas objects might be a desired feature as well.[*](#footnote)
<a name="footnote">*</a>*It is likely that Pandas deliberately chose not implement to this feature. If everyone starts monkeypatching DataFrames with their custom methods, it could lead to confusion in the Pandas community. The preferred Pandas approach is to namespace your methods by registering an accessor that contains your custom methods.*
**So how does method registration work?**
When you register a method, Pandas flavor actually creates and registers a (this is subtle, but important) **custom accessor class that mimics** the behavior of a method by:
1. inheriting the docstring of your function
2. overriding the `__call__` method to call your function.https://github.com/Zsailer/pandas_flavorMITopenEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843840-20251014-01275python-pandas-flavor-0.6.0-1.src.rpmpython3-pingouinnoarch27f851fb0c90c252b399df71674eb7d2e2ac0d9b6de7bf6bd2d25637bdc9670ePingouin: statistical package for Python**Pingouin** is an open-source statistical package written in Python 3 and based mostly on Pandas and NumPy. Some of its main features are listed below. For a full list of available functions, please refer to the `API documentation <https://pingouin-stats.org/build/html/api.html#>`_.
1. ANOVAs: N-ways, repeated measures, mixed, ancova
2. Pairwise post-hocs tests (parametric and non-parametric) and pairwise correlations
3. Robust, partial, distance and repeated measures correlations
4. Linear/logistic regression and mediation analysis
5. Bayes Factors
6. Multivariate tests
7. Reliability and consistency
8. Effect sizes and power analysis
9. Parametric/bootstrapped confidence intervals around an effect size or a correlation coefficient
10. Circular statistics
11. Chi-squared tests
12. Plotting: Bland-Altman plot, Q-Q plot, paired plot, robust correlation...
Pingouin is designed for users who want **simple yet exhaustive statistical functions**.
For example, the :code:`ttest_ind` function of SciPy returns only the T-value and the p-value. By contrast,
the :code:`ttest` function of Pingouin returns the T-value, the p-value, the degrees of freedom, the effect size (Cohen's d), the 95% confidence intervals of the difference in means, the statistical power and the Bayes Factor (BF10) of the test.https://pingouin-stats.org/index.htmlGPL-3.0openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843834-20251014-01255python-pingouin-0.5.5-1.src.rpmpython3-seabornnoarchf3ca69971b23d296c7cdc800cbc42d5857c4eac0e29e4e68a8e72efa05d69c6fStatistical data visualizationhttps://pypi.org/project/seaborn/NoneopenEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843829-20251014-01240python-seaborn-0.13.2-1.src.rpmzeus-distributex86_64027911f34a84dade1a543ac30f503e178adec888a7fe53430b73dc223bcf647eA distributed service of aops.A distributed service of aops.https://gitee.com/openeuler/aops-zeusMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843826-20251014-01224aops-zeus-v2.2.0-1.src.rpm/etc/aops/conf.d/zeus-distribute.ymlzeus-host-informationx86_64827a559e70bf544995eac27e3937e8a01f0590cfcab48007397b10a2d9d6af9eA host manager service which is the foundation of aops.A host manager service which is the foundation of aops.https://gitee.com/openeuler/aops-zeusMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843826-20251014-01224aops-zeus-v2.2.0-1.src.rpm/etc/aops/conf.d/zeus-host-information.ymlzeus-operationx86_642ba95d7ff1ea2ceb82fd65b8c4df38666ad50e2f3d3395d066c880459a95e876A operation manager service which is the foundation of aops.A operation manager of aops.https://gitee.com/openeuler/aops-zeusMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843826-20251014-01224aops-zeus-v2.2.0-1.src.rpm/etc/aops/conf.d/zeus-operation.ymlzeus-user-accessx86_64b03786cb2f9f781e726f99ffde38a1c7bc6898ffbeb2612c78830783c9a35c34A user manager service which is the foundation of aops.A user manager service which is the foundation of aops.https://gitee.com/openeuler/aops-zeusMulanPSL2openEuler Copr - user HLG523653667Unspecifiedeur-prod-workerlocal-x86-64-normal-prod-00843826-20251014-01224aops-zeus-v2.2.0-1.src.rpm/etc/aops/conf.d/zeus-user-access.yml