<commit_before>import json
import urllib
import urllib2

class CirconusAPI(object):

    def __init__(self, token):
        self.hostname = 'circonus.com'
        self.token = token
        # List valid api methods and their parameters here
        # The two lists are required and optional parameters
        self.methods = {
            ### Check management
            'list_agents': {
                'form_method': 'GET'
            },
            'list_checks': {
                'form_method': 'GET',
                'optional': ['active']
            },
            'list_metrics': {
                'form_method': 'GET',
                'required': ['check_id']
            },
            'add_check_bundle': {
                'form_method': 'POST',
                'required': ['agent_id', 'target', 'metric_name'],
                'optional': ['module', 'period', 'timeout','*']
            },
            'edit_check_bundle': {
                'form_method': 'POST',
                'required': ['bundle_id', 'metric_name'],
                'optional': ['*']
            },
            'enable_check_bundle': {
                'form_method': 'POST',
                'required': ['bundle_id']
            },
            'disable_check_bundle': {
                'form_method': 'POST',
                'required': ['bundle_id']
            },
            'enable_check': {
                'form_method': 'POST',
                'required': ['check_id']
            },
            'disable_check': {
                'form_method': 'POST',
                'required': ['check_id']
            },
            ### Account management
            'list_accounts': {
                'form_method': 'POST'
            },
            'list_users': {
                'form_method': 'GET',
                'required': ['check_id', 'metric_name']
            },
            'list_contact_groups': {
                'form_method': 'GET'
            },
            'add_contact_group': {
                'form_method': 'POST',
                'required': ['name'],
                'optional': ['agg_window']
            },
            'edit_contact_group': {
                'form_method': 'POST',
                'required': ['contact_group_id'],
                'optional': ['name', 'agg_window']
            },
            'remove_contact_group': {
                'form_method': 'POST',
                'required': ['contact_group_id']
            },
            'add_contact': {
                'form_method': 'POST',
                'required' : ['contact_group_id', 'contact_method'],
                'optional' : ['user_id', 'contact_info']
            },
            'remove_contact': {
                'form_method': 'POST',
                'required': ['contact_group_id'],
                'optional': ['user_id', 'id', 'contact_method']
            },
            ### Rule management
            'list_alerts': {
                'form_method': 'GET',
                'required': ['start', 'end']
            },
            'list_rules': {
                'form_method': 'GET',
                'required': ['check_id', 'metric_name']
            },
            'add_metric_rule': {
                'form_method': 'POST',
                'required': ['check_id', 'metric_name', 'order', 'severity',
                             'value']
            },
            'remove_metric_rule': {
                'form_method': 'POST',
                'required' : ['check_id', 'metric_name', 'order']
            },
            'add_metric_parent': {
                'form_method': 'POST',
                'required' : ['check_id', 'parent_check_id', 'metric_name',
                              'parent_metric_name']
            },
            'remove_metric_parent': {
                'form_method': 'POST',
                'required': ['check_id', 'metric_name']
            },
            'add_rule_contact_group': {
                'form_method': 'POST',<commit_msg>Fix required/optional for list_rules<commit_after>import json
import urllib
import urllib2

class CirconusAPI(object):

    def __init__(self, token):
        self.hostname = 'circonus.com'
        self.token = token
        # List valid api methods and their parameters here
        # The two lists are required and optional parameters
        self.methods = {
            ### Check management
            'list_agents': {
                'form_method': 'GET'
            },
            'list_checks': {
                'form_method': 'GET',
                'optional': ['active']
            },
            'list_metrics': {
                'form_method': 'GET',
                'required': ['check_id']
            },
            'add_check_bundle': {
                'form_method': 'POST',
                'required': ['agent_id', 'target', 'metric_name'],
                'optional': ['module', 'period', 'timeout','*']
            },
            'edit_check_bundle': {
                'form_method': 'POST',
                'required': ['bundle_id', 'metric_name'],
                'optional': ['*']
            },
            'enable_check_bundle': {
                'form_method': 'POST',
                'required': ['bundle_id']
            },
            'disable_check_bundle': {
                'form_method': 'POST',
                'required': ['bundle_id']
            },
            'enable_check': {
                'form_method': 'POST',
                'required': ['check_id']
            },
            'disable_check': {
                'form_method': 'POST',
                'required': ['check_id']
            },
            ### Account management
            'list_accounts': {
                'form_method': 'POST'
            },
            'list_users': {
                'form_method': 'GET',
                'required': ['check_id', 'metric_name']
            },
            'list_contact_groups': {
                'form_method': 'GET'
            },
            'add_contact_group': {
                'form_method': 'POST',
                'required': ['name'],
                'optional': ['agg_window']
            },
            'edit_contact_group': {
                'form_method': 'POST',
                'required': ['contact_group_id'],
                'optional': ['name', 'agg_window']
            },
            'remove_contact_group': {
                'form_method': 'POST',
                'required': ['contact_group_id']
            },
            'add_contact': {
                'form_method': 'POST',
                'required' : ['contact_group_id', 'contact_method'],
                'optional' : ['user_id', 'contact_info']
            },
            'remove_contact': {
                'form_method': 'POST',
                'required': ['contact_group_id'],
                'optional': ['user_id', 'id', 'contact_method']
            },
            ### Rule management
            'list_alerts': {
                'form_method': 'GET',
                'required': ['start', 'end']
            },
            'list_rules': {
                'form_method': 'GET',
                'optional': ['check_id', 'metric_name']
            },
            'add_metric_rule': {
                'form_method': 'POST',
                'required': ['check_id', 'metric_name', 'order', 'severity',
                             'value']
            },
            'remove_metric_rule': {
                'form_method': 'POST',
                'required' : ['check_id', 'metric_name', 'order']
            },
            'add_metric_parent': {
                'form_method': 'POST',
                'required' : ['check_id', 'parent_check_id', 'metric_name',
                              'parent_metric_name']
            },
            'remove_metric_parent': {
                'form_method': 'POST',
                'required': ['check_id', 'metric_name']
            },
            'add_rule_contact_group': {
                'form_method': 'POST',
{'fraction_non_alphanumeric': 0.14483105137545535, 'fraction_numerical': 0.00025122472051249844, 'mean_word_length': 1.2677299914554259, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2234753', 'n_tokens_mistral': 2128, 'n_tokens_neox': 2025, 'n_words': 370}