def reconcile(self, status): if settings.RECONCILE_URL: self.transport.post( url=self.auth.build_url(self.config.base_url, settings.RECONCILE_URL), json_data={ "status": status, "created_at": str(utc.localize(datetime.utcnow())), }, )
def reconcile(self, status): if settings.INTERNAL_RECONCILE_URL: self.transport.post(url=self.auth.build_url( self.api_config.base_url, settings.INTERNAL_RECONCILE_URL), json_data={ 'status': status, 'created_at': str(utc.localize(datetime.utcnow())) })
def create_metric(self, username, project_name, experiment_id, values, created_at=None, background=False, periodic=False): request_url = self.build_url(self._get_http_url(), username, project_name, 'experiments', experiment_id, 'metrics') # Validate metric values def parse_numbers(value): if isinstance(value, (int, float, complex, type(None))): return value if isinstance(value, np.integer): return int(value) if isinstance(value, np.floating): return float(value) if hasattr(value, 'item'): return value.item() raise PolyaxonClientException( 'Client could not parse the value `{}`, it expects a number.'. format(value)) json_data = { 'values': {key: parse_numbers(values[key]) for key in values} } if created_at: json_data['created_at'] = str(utc.localize(created_at)) if background: self.transport.async_post(request_url, json_data=json_data) return None if periodic: self.transport.periodic_post(request_url, json_data=json_data) return None try: response = self.transport.post(request_url, json_data=json_data) return self.prepare_results(response_json=response.json(), config=ExperimentMetricConfig) except PolyaxonClientException as e: self.transport.handle_exception( e=e, log_message='Error while retrieving experiment status.') return None