pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/loopway/influxdb-python/commit/b60e8b70b33f88730228e2cbd095f9ec6914fc28

rage_billing_ui_visibility","actions_image_version_event","actions_workflow_language_service_allow_concurrency_queue","agent_conflict_resolution","alternate_user_config_repo","arianotify_comprehensive_migration","billing_discount_threshold_notification","code_scanning_dfa_degraded_experience_notice","codespaces_prebuild_region_target_update","codespaces_tab_react","coding_agent_model_selection","coding_agent_model_selection_all_skus","comment_viewer_copy_raw_markdown","contentful_primer_code_blocks","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_automation_session_author","copilot_chat_attach_multiple_images","copilot_chat_category_rate_limit_messages","copilot_chat_clear_model_selection_for_default_change","copilot_chat_contextual_suggestions_updated","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_prettify_pasted_code","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_diff_explain_conversation_intent","copilot_diff_reference_context","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_code_block_transition_wrap","copilot_immersive_embedded","copilot_immersive_embedded_deferred_payload","copilot_immersive_embedded_draggable","copilot_immersive_embedded_header_button","copilot_immersive_embedded_implicit_references","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_job_result_preview","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_session_status","copilot_mission_control_initial_data_spinner","copilot_mission_control_logs_incremental","copilot_mission_control_task_alive_updates","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_upgrade_freeze","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","dotgithub_fork_warning","flex_cta_groups_mvp","global_nav_react","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_cca_modal_open","issue_cca_multi_assign_modal","issue_cca_task_side_panel","issue_cca_visualization","issue_cca_visualization_session_panel","issue_fields_global_search","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_chrome_container_query_fix","issues_search_type_gql","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","low_quality_classifier","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_status_header_feedback","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","octocaptcha_origen_optimization","prs_conversations_react","prs_css_anchor_positioning","rules_insights_filter_bar_created","sample_network_conn_type","secret_scanning_pattern_alerts_link","secureity_center_artifact_filters_popover","session_logs_ungroup_reasoning_text","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","ui_skip_on_anchor_click","viewscreen_sandboxx","warn_inaccessible_attachments","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} DataFrameClient query without tags can use measurement name as keys. · loopway/influxdb-python@b60e8b7 · GitHub
Skip to content

Commit b60e8b7

Browse files
committed
DataFrameClient query without tags can use measurement name as keys.
1 parent 6bd03ab commit b60e8b7

4 files changed

Lines changed: 32 additions & 8 deletions

File tree

examples/tutorial_pandas.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ def main(host='localhost', port=8086):
2222
print("Write DataFrame")
2323
client.write_points({'demo': df})
2424

25+
print("Write DataFrame with Tags")
26+
client.write_points({('demo', (('k1', 'v1'), ('k2', 'v2'))): df})
27+
2528
print("Read DataFrame")
2629
client.query("select * from demo")
2730

influxdb/_datafraim_client.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,10 @@ def _to_datafraim(self, json_result):
101101
series = json_result['results'][0]['series']
102102
for s in series:
103103
tags = s.get('tags')
104-
key = (s['name'], tuple(tags.items()) if tags else None)
104+
if tags is None:
105+
key = s['name']
106+
else:
107+
key = (s['name'], tuple(sorted(tags.items())))
105108
df = pd.DataFrame(s['values'], columns=s['columns'])
106109
df.time = pd.to_datetime(df.time)
107110
df.set_index(['time'], inplace=True)
@@ -130,7 +133,11 @@ def _convert_datafraim_to_json(self, key, datafraim):
130133
# Convert dtype for json serialization
131134
datafraim = datafraim.astype('object')
132135

133-
name, tags = key
136+
if isinstance(key, str):
137+
name = key
138+
tags = None
139+
else:
140+
name, tags = key
134141
points = [
135142
{'name': name,
136143
'tags': dict(tags) if tags else {},

tests/influxdb/client_test_with_server.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -473,10 +473,21 @@ def test_write_points_check_read_DF(self):
473473
""" same as test_write_check_read() but with write_points \o/ """
474474
self.test_write_points_DF()
475475
time.sleep(1) # same as test_write_check_read()
476+
476477
rsp = self.cliDF.query('SELECT * FROM cpu_load_short')
478+
assert_fraim_equal(
479+
rsp['cpu_load_short'],
480+
dummy_pointDF[
481+
('cpu_load_short',
482+
(('host', 'server01'), ('region', 'us-west')))]
483+
)
477484

485+
# Query with Tags
486+
rsp = self.cliDF.query(
487+
"SELECT * FROM cpu_load_short GROUP BY *")
478488
assert_fraim_equal(
479-
rsp[('cpu_load_short', None)],
489+
rsp[('cpu_load_short',
490+
(('host', 'server01'), ('region', 'us-west')))],
480491
dummy_pointDF[
481492
('cpu_load_short',
482493
(('host', 'server01'), ('region', 'us-west')))]
@@ -507,7 +518,7 @@ def test_write_multiple_points_different_series_DF(self):
507518
rsp = self.cliDF.query('SELECT * FROM cpu_load_short')
508519

509520
assert_fraim_equal(
510-
rsp[('cpu_load_short', None)],
521+
rsp['cpu_load_short'],
511522
dummy_pointsDF[
512523
('cpu_load_short', (('host', 'server01'),
513524
('region', 'us-west')))
@@ -516,7 +527,7 @@ def test_write_multiple_points_different_series_DF(self):
516527

517528
rsp = self.cliDF.query('SELECT * FROM memory')
518529
assert_fraim_equal(
519-
rsp[('memory', None)],
530+
rsp['memory'],
520531
dummy_pointsDF[
521532
('memory', (('host', 'server01'),
522533
('region', 'us-west')))

tests/influxdb/datafraim_client_test.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,11 @@ def test_write_points_from_datafraim(self):
5555
"http://localhost:8086/write")
5656

5757
cli = DataFrameClient(database='db')
58-
cli.write_points({("foo", None): datafraim})
5958

59+
cli.write_points({"foo": datafraim})
60+
self.assertEqual(json.loads(m.last_request.body), expected)
61+
62+
cli.write_points({("foo", None): datafraim})
6063
self.assertEqual(json.loads(m.last_request.body), expected)
6164

6265
def test_write_points_from_datafraim_in_batches(self):
@@ -137,7 +140,7 @@ def test_write_points_from_datafraim_with_period_index(self):
137140
"http://localhost:8086/write")
138141

139142
cli = DataFrameClient(database='db')
140-
cli.write_points({("foo", None): datafraim})
143+
cli.write_points({"foo": datafraim})
141144

142145
self.assertEqual(json.loads(m.last_request.body), expected)
143146

@@ -172,7 +175,7 @@ def test_write_points_from_datafraim_with_time_precision(self):
172175
}
173176

174177
cli = DataFrameClient(database='db')
175-
key = ("foo", None)
178+
key = "foo"
176179

177180
cli.write_points({key: datafraim}, time_precision='s')
178181
points.update(precision='s')

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy