Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

behave-pandas

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

behave-pandas

Provides helper functions to help converting behave tables into pandas dataframes and vice versa.

  • 0.5.0
  • PyPI
  • Socket score

Maintainers
1

behave-pandas

Utility package for the Behave BDD testing framework, to make converting gherkin tables to and from pandas data frames a breeze.

Build Status

Travis CI badge

Installation

pip install behave-pandas

Features

  • Easily convert a Gherkin table into a pandas data frame with explicit dtype information
  • Easily convert a pandas data frame into a behave table that can be parsed by behave-pandas
  • Support converting data frames with multiple index levels either on columns or rows
  • Handle missing data for dtypes that support it.

Changelog

See the changelog here.

API

The behave-pandas api is extremely simple, and consists in two functions:

from behave_pandas import table_to_dataframe, dataframe_to_table

Example

Feature: Table printer

  as a tester
  I want to be able to create gherkin tables from existing data frames

  Scenario: simple index
    Given a gherkin table as input
      | str       | float     | str                 |
      | index_col | float_col | str_col             |
      | egg       | 3.0       | silly walks         |
      | spam      | 4.1       | spanish inquisition |
      | bacon     | 5.2       | dead parrot         |
    When converted to a data frame using 1 row as column names and 1 column as index
    And printed using data_frame_to_table
    Then it prints a valid string copy pasteable into gherkin files
    """
    | object    | float64   | object              |
    | index_col | float_col | str_col             |
    | egg       | 3.0       | silly walks         |
    | spam      | 4.1       | spanish inquisition |
    | bacon     | 5.2       | dead parrot         |
    """

Associated steps:

from behave import *
from behave_pandas import table_to_dataframe, dataframe_to_table

use_step_matcher("parse")

@given("a gherkin table as input")
def step_impl(context,):
    context.input = context.table

@when('converted to a data frame using {column_levels:d} row as column names and {index_levels:d} column as index')
def step_impl(context, column_levels, index_levels):
    context.parsed = table_to_dataframe(context.input, column_levels=column_levels, index_levels=index_levels)


@then("it prints a valid string copy pasteable into gherkin files")
def step_impl(context):
    assert context.result == context.text


@step("printed using data_frame_to_table")
def step_impl(context):
    context.result = dataframe_to_table(context.parsed)

Parsed dataframe:

>>> context.parsed
           float_col              str_col
index_col
egg              3.0          silly walks
spam             4.1  spanish inquisition
bacon            5.2          dead parrot

>>> context.parsed.info()
<class 'pandas.core.frame.DataFrame'>
Index: 3 entries, egg to bacon
Data columns (total 2 columns):
float_col    3 non-null float64
str_col      3 non-null object
dtypes: float64(1), object(1)
memory usage: 72.0+ bytes

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc