diff --git a/README.md b/README.md index a4b2833..4bef908 100644 --- a/README.md +++ b/README.md @@ -5,27 +5,42 @@ Nasdaq Data Link provides a modern and efficient method of delivery for realtime # Products Currently Available ### Equities #### The Nasdaq Stock Market -- [Nasdaq Basic](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NasdaqBasic-Cloud.pdf) (real-time & delayed) -- [Nasdaq Last Sale+](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NLSPlus-cloud.pdf) (real-time & delayed) -- [Nasdaq TotalView](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/Totalview-ITCH-cloud.pdf) -- [Nasdaq Consolidated Quotes and Trades](https://github.com/Nasdaq/CloudDataService/raw/master/specs/CQT-cloud.pdf) (real-time & delayed) +- [Nasdaq Basic v1](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NasdaqBasic-Cloud.pdf) (real-time & delayed) +- [Nasdaq Basic v2](https://assets.ctfassets.net/mx0rke14e5yt/7EKUREHBRJYUj35F5TEWYr/c43c31cc7dbaaefdbcfbe7381acc763f/NasdaqBBO_Cloud-2025.pdf)(real-time & delayed) +- [Nasdaq Last Sale+ v3](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NLSPlus-cloud.pdf) (real-time & delayed) +- [Nasdaq Last Sale+ v4](https://assets.ctfassets.net/mx0rke14e5yt/2O7Da5RPfo9Xnha7sCRjHh/799cedca497685290a3c972bb45fa5bc/NewLastSale_Cloud-2025-1.pdf) (real-time & delayed) +- [Nasdaq TotalView](https://assets.ctfassets.net/mx0rke14e5yt/2nwLafPib6CgIbFu63K4zo/71480a8ab9bb6f97190f056da7133c2e/Nasdaq_ITCH_Products_2025-1.pdf) +- [Nasdaq Consolidated Quotes and Trades](https://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/CQT-cloud.pdf) (real-time & delayed) #### Nasdaq BX -- [BX BBO](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/BX_BBO_Cloud.pdf) -- [BX Last Sale](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/BLS_Cloud.pdf) +- [BX BBO v1](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/BX_BBO_Cloud.pdf) +- [BX BBO v2](https://assets.ctfassets.net/mx0rke14e5yt/v98L9JONLPyiFWpNZ1Qnv/799904397161ba3662c8cf7e071abb9a/NasdaqBBO_Cloud-2025.pdf) +- [BX Last Sale v3](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/BLS_Cloud.pdf) +- [BX Last Sale v4](https://assets.ctfassets.net/mx0rke14e5yt/56DTTqad89Rok21eYI7Ogw/3994fee598fc6910573b327b94493418/NasdaqLastSale_Cloud-2025.pdf) #### Nasdaq PSX -- [PSX BBO](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/PSX_BBO_Cloud.pdf) -- [PSX Last Sale](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/PLS_Cloud.pdf) +- [PSX BBO v1](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/PSX_BBO_Cloud.pdf) +- [PSX BBO v2](https://assets.ctfassets.net/mx0rke14e5yt/v98L9JONLPyiFWpNZ1Qnv/799904397161ba3662c8cf7e071abb9a/NasdaqBBO_Cloud-2025.pdf) +- [PSX Last Sale v3](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/PLS_Cloud.pdf) +- [PSX Last Sale v4](https://assets.ctfassets.net/mx0rke14e5yt/56DTTqad89Rok21eYI7Ogw/3994fee598fc6910573b327b94493418/NasdaqLastSale_Cloud-2025.pdf) #### Nasdaq Canada - [Nasdaq Canada Basic](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/Nasdaq-Basic-Canada-Cloud-Specification.pdf) +#### OTC Markets +- [OTC Markets](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/OTCM-cloud.pdf) (real-time & delayed) +#### Bruce Markets +- [Bruce Best Bid and Offer](https://assets.ctfassets.net/mx0rke14e5yt/7EKUREHBRJYUj35F5TEWYr/c43c31cc7dbaaefdbcfbe7381acc763f/NasdaqBBO_Cloud-2025.pdf) +- [Bruce Last Sale](https://assets.ctfassets.net/mx0rke14e5yt/2O7Da5RPfo9Xnha7sCRjHh/799cedca497685290a3c972bb45fa5bc/NewLastSale_Cloud-2025-1.pdf) +- [Bruce Depth of Book](https://assets.ctfassets.net/mx0rke14e5yt/2nwLafPib6CgIbFu63K4zo/71480a8ab9bb6f97190f056da7133c2e/Nasdaq_ITCH_Products_2025-1.pdf) ### Indexes & ETPs - [Global Index Data Service](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/GIDS_Cloud.pdf) ### Options #### Nasdaq U.S. Derivatives -- [Nasdaq Smart Options](http://nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NCDSSmartOptions.pdf) +- [Nasdaq Smart Options](https://nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NCDSSmartOptions.pdf) +- [Nasdaq Options Greeks and Implied Volatility](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/GreeksandVols_Specification.pdf) +- [Nasdaq Options Greeks and Implied Volatility Powered by Nasdaq Basic](https://assets.ctfassets.net/mx0rke14e5yt/5TJxpG0Cjk1tNUIRP4rZ86/5d77161ead15d746872d2ff17ba6ac06/Greeks_and_Vols_Powered_by_Basic_Streaming_Specs.pdf) ### Mutual Funds - [Nasdaq Fund Network](http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NFNDS_NCDS.pdf) ### News -- [Financial News](http://nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/MTNewswires-cloud.pdf) +- [Financial News - MT Newswires](http://nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/MTNewswires-cloud.pdf) +- [Benzinga Market Newswires](https://data.nasdaq.com/databases/BENZ) # Items To Note diff --git a/ncdssdk/src/main/python/ncdsclient/consumer/NasdaqKafkaAvroConsumer.py b/ncdssdk/src/main/python/ncdsclient/consumer/NasdaqKafkaAvroConsumer.py index 0d85d6e..328b18c 100644 --- a/ncdssdk/src/main/python/ncdsclient/consumer/NasdaqKafkaAvroConsumer.py +++ b/ncdssdk/src/main/python/ncdsclient/consumer/NasdaqKafkaAvroConsumer.py @@ -93,7 +93,7 @@ def get_kafka_consumer(self, stream_name, timestamp=None): if auto_offset_cfg == "earliest" or auto_offset_cfg == "smallest" or auto_offset_cfg == "beginning": self.logger.debug( f"Auto offset reset config set to: {auto_offset_cfg}") - return SeekToMidnight.seek_to_midnight_at_past_day(kafka_consumer, topic_partition, 0) + return SeekToMidnight.seek_to_midnight_at_past_day(kafka_consumer, topic_partition, 0, self.kafka_props.get(self.kafka_config_loader.TIMEOUT)) else: return kafka_consumer @@ -105,7 +105,7 @@ def get_kafka_consumer(self, stream_name, timestamp=None): self.logger.debug( "offset: " + str(topic_partition.offset) + ", timestamp: " + str(timestamp)) offsets_for_times = kafka_consumer.offsets_for_times( - [topic_partition], self.kafka_cfg.TIMEOUT) + [topic_partition], self.kafka_props.get(self.kafka_config_loader.TIMEOUT)) except Exception as e: self.logger.exception(e) sys.exit(0) @@ -132,7 +132,7 @@ def get_consumer(self, avro_schema, stream_name): a :class:`.KafkaAvroConsumer` instance with a key and value deserializer set through the avro_schema parameter """ if 'group.id' not in self.kafka_props: - self.kafka_props[self.kafka_config_loader.GROUP_ID_CONFIG] = f'{self.client_ID}_{stream_name}_{datetime.datetime.today().day}' + self.kafka_props[self.kafka_config_loader.GROUP_ID_CONFIG] = f'{self.client_ID}' return KafkaAvroConsumer(self.kafka_props, avro_schema) def get_schema_for_topic(self, topic): diff --git a/ncdssdk/src/main/python/ncdsclient/internal/ReadSchemaTopic.py b/ncdssdk/src/main/python/ncdsclient/internal/ReadSchemaTopic.py index 7e7449b..6b72dd8 100644 --- a/ncdssdk/src/main/python/ncdsclient/internal/ReadSchemaTopic.py +++ b/ncdssdk/src/main/python/ncdsclient/internal/ReadSchemaTopic.py @@ -32,8 +32,7 @@ def __init__(self): def read_schema(self, topic): auth_config_loader = AuthenticationConfigLoader() - schema_consumer = self.get_consumer( - "Control-" + auth_config_loader.get_client_id(self.security_props)) + schema_consumer = self.get_consumer(auth_config_loader.get_client_id(self.security_props)) latest_record = None num_messages = self.kafka_props[self.kafka_config_loader.NUM_MESSAGES] timeout = self.kafka_props[self.kafka_config_loader.TIMEOUT] @@ -46,7 +45,6 @@ def read_schema(self, topic): try: msg_val = message.value() - latest_record = None if "name" in msg_val and msg_val["name"] == topic: latest_record = message if latest_record and 'schema' in msg_val: @@ -106,7 +104,7 @@ def get_consumer(self, client_id): self.kafka_props = KafkaConfigLoader.load_test_config() self.kafka_props[self.kafka_config_loader.AUTO_OFFSET_RESET_CONFIG] = 'earliest' - self.kafka_props[self.kafka_config_loader.GROUP_ID_CONFIG] = f'{client_id}1' + self.kafka_props[self.kafka_config_loader.GROUP_ID_CONFIG] = f'{client_id}' kafka_avro_consumer = KafkaAvroConsumer( self.kafka_props, ctrl_msg_schema) @@ -116,7 +114,7 @@ def get_consumer(self, client_id): kafka_avro_consumer.assign([topic_partition]) - return SeekToMidnight.seek_to_midnight_at_past_day(kafka_avro_consumer, topic_partition, 7) + return SeekToMidnight.seek_to_midnight_at_past_day(kafka_avro_consumer, topic_partition, 6, self.kafka_props[self.kafka_config_loader.TIMEOUT]) def internal_schema(self, topic): try: diff --git a/ncdssdk/src/main/python/ncdsclient/internal/utils/SeekToMidnight.py b/ncdssdk/src/main/python/ncdsclient/internal/utils/SeekToMidnight.py index 1816204..9173409 100644 --- a/ncdssdk/src/main/python/ncdsclient/internal/utils/SeekToMidnight.py +++ b/ncdssdk/src/main/python/ncdsclient/internal/utils/SeekToMidnight.py @@ -1,19 +1,20 @@ import logging import sys from confluent_kafka import OFFSET_BEGINNING, OFFSET_INVALID -from datetime import datetime, date, timedelta, time +from datetime import datetime, timedelta +import pytz logger = logging.getLogger(__name__) -def seek_to_midnight_at_past_day(kafka_avro_consumer, topic_partition, num_days_ago=0): +def seek_to_midnight_at_past_day(kafka_avro_consumer, topic_partition, num_days_ago=0, timeout=10): topic_partition.offset = get_timestamp_at_midnight(num_days_ago) logger.debug( f"Num days ago: {num_days_ago}. Setting partition offset to timestamp: {topic_partition.offset}") try: logger.debug(f"topic partition: {topic_partition}") offsets_for_times = kafka_avro_consumer.offsets_for_times( - [topic_partition], timeout=5) + [topic_partition], timeout=timeout) except Exception as e: logger.exception(e) sys.exit(0) @@ -34,6 +35,5 @@ def seek_to_midnight_at_past_day(kafka_avro_consumer, topic_partition, num_days_ def get_timestamp_at_midnight(num_days_ago=0): - past_day = date.today()-timedelta(days=num_days_ago) - midnight = datetime.combine(past_day, time.min) - return int(midnight.timestamp() * 1000) + midnight = datetime.now(pytz.timezone('America/New_York')).replace(hour=0, minute=0, second=0, microsecond=0) - timedelta(days=num_days_ago) + return int(midnight.timestamp() * 1000) \ No newline at end of file diff --git a/ncdssdk/src/main/resources/schemas/NASDAQ-DIGITAL-ASSETS.avsc b/ncdssdk/src/main/resources/schemas/NASDAQ-DIGITAL-ASSETS.avsc new file mode 100644 index 0000000..c1b9407 --- /dev/null +++ b/ncdssdk/src/main/resources/schemas/NASDAQ-DIGITAL-ASSETS.avsc @@ -0,0 +1,96 @@ +[ + { + "type":"record", + "name":"OrderEvent", + "namespace":"com.amber.spot", + "fields":[ + { + "name":"exchange", + "type": ["null", "string"], + "default": null + }, + { + "name":"pair", + "type": ["null", "string"], + "default": null + }, + { + "name":"timestamp", + "type": ["null", "long"], + "default": null + }, + { + "name":"timestampNanoseconds", + "type": ["null", "long"], + "default": null + }, + { + "name":"price", + "type": ["null", "double"], + "default": null + }, + { + "name":"volume", + "type": ["null", "double"], + "default": null + }, + { + "name":"isBid", + "type": ["null", "boolean"], + "default": null + }, + { + "name":"sequence", + "type": ["null", "long"], + "default": null + } + ] + }, + { + "type":"record", + "name":"Trade", + "namespace":"com.amber.spot", + "fields":[ + { + "name":"exchange", + "type": ["null", "string"], + "default": null + }, + { + "name":"pair", + "type": ["null", "string"], + "default": null + }, + { + "name":"timestamp", + "type": ["null", "long"], + "default": null + }, + { + "name":"timestampNanoseconds", + "type": ["null", "long"], + "default": null + }, + { + "name":"tradeId", + "type": ["null", "long"], + "default": null + }, + { + "name":"price", + "type": ["null", "double"], + "default": null + }, + { + "name":"volume", + "type": ["null", "double"], + "default": null + }, + { + "name":"isBid", + "type": ["null", "boolean"], + "default": null + } + ] + } +] \ No newline at end of file diff --git a/ncdssdk/src/main/resources/schemas/NFN.avsc b/ncdssdk/src/main/resources/schemas/NFN.avsc index 5233a41..83197c6 100644 --- a/ncdssdk/src/main/resources/schemas/NFN.avsc +++ b/ncdssdk/src/main/resources/schemas/NFN.avsc @@ -1 +1 @@ -[{ "type" : "record", "name" : "AdminDailyStatistics", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"MutualFundMediaList", "type" : "string"}, {"name":"MutualFundSupplementalList", "type" : "string"}, {"name":"MutualFundReporting", "type" : "string"}, {"name":"MoneyMarketFundMediaList", "type" : "string"}, {"name":"MoneyMarketFundSupplementalList", "type" : "string"}, {"name":"MoneyMarketFundReporting", "type" : "string"}, {"name":"DebtUITList", "type" : "string"}, {"name":"DebtUITReporting", "type" : "string"}, {"name":"EquityUITList", "type" : "string"}, {"name":"EquityUITReporting", "type" : "string"}, {"name":"StructuredProductList", "type" : "string"}, {"name":"StructuredProductReporting", "type" : "string"}, {"name":"AnnuityList", "type" : "string"}, {"name":"AnnuityReporting", "type" : "string"}, {"name":"AIPList", "type" : "string"}, {"name":"AIPReporting", "type" : "string"}, {"name":"NextSharesList", "type" : "string"}, {"name":"NextSharesReporting", "type" : "string"}, {"name":"CollectiveInvestmentTrustList", "type" : "string"}, {"name":"CollectiveInvestmentTrustReporting", "type" : "string"}, {"name":"ManagedAccountsList", "type" : "string"}, {"name":"ManagedAccountsReporting", "type" : "string"}, {"name":"SeparateAccountsList", "type" : "string"}, {"name":"SeparateAccountsReporting", "type" : "string"}, {"name":"HedgeFundList", "type" : "string"}, {"name":"HedgeFundReporting", "type" : "string"}, {"name":"DemandDepositAccountList", "type" : "string"}, {"name":"DemandDepositAccountReporting", "type" : "string"}, {"name":"DataServiceSpinCount", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "AdminGeneral", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"SystemAlert", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "AdminSymbolDirectory", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"InstrumentTypeTier", "type" : "string"}, {"name":"InstrumentCode", "type" : "string"}, {"name":"Symbol", "type" : "string"}, {"name":"PricingFrequency", "type" : "string"}, {"name":"InstrumentName", "type" : "string"}, {"name":"ExchangeCodeForListedInstruments", "type" : "string"}, {"name":"ExchangeSymbolForListedInstruments", "type" : "string"}, {"name":"Currency", "type" : "string"}, {"name":"InstrumentRegistration", "type" : "string"}, {"name":"ModelPortfolioFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "AdminSymbolDirectoryExpandedInstrumentCode", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlEndOfDay", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlEndOfRetransmissionRequests", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlEndOfSummarySpin", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlEndOfTransmission", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlLineIntegrity", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlMessageSequenceNumberReset", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlSessionClose", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlSessionOpen", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlStartOfDay", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlStartOfSummarySpin", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ValuationMessageDistributions", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"InstrumentTypeTier", "type" : "string"}, {"name":"Symbol", "type" : "string"}, {"name":"Action", "type" : "string"}, {"name":"ShortTermCapitalGain", "type" : "string"}, {"name":"LongTermCapitalGain", "type" : "string"}, {"name":"UnAllocatedDistributions", "type" : "string"}, {"name":"ROC", "type" : "string"}, {"name":"Currency", "type" : "string"}, {"name":"DstPaymentDate", "type" : "string"}, {"name":"DstRecordDate", "type" : "string"}, {"name":"DstExDate", "type" : "string"}, {"name":"DstReinvestDate", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ValuationMessageDividends", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"InstrumentTypeTier", "type" : "string"}, {"name":"Symbol", "type" : "string"}, {"name":"Action", "type" : "string"}, {"name":"CashDistributionType", "type" : "string"}, {"name":"CashDistributionTotal", "type" : "string"}, {"name":"CashDistributionNonQualified", "type" : "string"}, {"name":"CashDistributionQualified", "type" : "string"}, {"name":"CashDistributionTaxFree", "type" : "string"}, {"name":"TaxCreditOrdinaryForeign", "type" : "string"}, {"name":"TaxCreditQualifiedForeign", "type" : "string"}, {"name":"StockDividendRatio", "type" : "string"}, {"name":"Currency", "type" : "string"}, {"name":"DivPaymentDate", "type" : "string"}, {"name":"DivRecordDate", "type" : "string"}, {"name":"DivExDate", "type" : "string"}, {"name":"DivReinvestDate", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ValuationMessageGeneral", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"InstrumentTypeTier", "type" : "string"}, {"name":"Symbol", "type" : "string"}, {"name":"ReportingType", "type" : "string"}, {"name":"Footnotes", "type" : "string"}, {"name":"NAV", "type" : "string"}, {"name":"OfferPrice", "type" : "string"}, {"name":"MarketPrice", "type" : "string"}, {"name":"RedemptionPrice", "type" : "string"}, {"name":"WrapPrice", "type" : "string"}, {"name":"TotalNetAssets", "type" : "string"}, {"name":"CurrentYield", "type" : "string"}, {"name":"CurrentYieldDirection", "type" : "string"}, {"name":"EstimatedLongTermReturn", "type" : "string"}, {"name":"EstimatedLongTermReturnDirection", "type" : "string"}, {"name":"AccruedInterest", "type" : "string"}, {"name":"DailyDividendFactor", "type" : "string"}, {"name":"DailyDividendAdjustmentIndicator", "type" : "string"}, {"name":"Currency", "type" : "string"}, {"name":"EntryDate", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ValuationMessageMoneyMarkets", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"InstrumentTypeTier", "type" : "string"}, {"name":"Symbol", "type" : "string"}, {"name":"ReportingType", "type" : "string"}, {"name":"Footnotes", "type" : "string"}, {"name":"AverageMaturity", "type" : "string"}, {"name":"AverageLife", "type" : "string"}, {"name":"NAV", "type" : "string"}, {"name":"YieldGross7Day", "type" : "string"}, {"name":"YieldGross7DayDirection", "type" : "string"}, {"name":"YieldSubsidized7Day", "type" : "string"}, {"name":"YieldSubsidized7DayDirection", "type" : "string"}, {"name":"YieldEffectiveAnnualized7Day", "type" : "string"}, {"name":"YieldEffectiveAnnualized7DayDirection", "type" : "string"}, {"name":"Yield30Day", "type" : "string"}, {"name":"Yield30DayDirection", "type" : "string"}, {"name":"Yield30DayDate", "type" : "string"}, {"name":"TotalNetAssets", "type" : "string"}, {"name":"DailyDividendFactor", "type" : "string"}, {"name":"DailyDividendAdjustmentIndicator", "type" : "string"}, {"name":"Currency", "type" : "string"}, {"name":"EntryDate", "type" : "string"}, {"name":"CalculationTime", "type" : "string"} ], "version" : "1" }, "null"] \ No newline at end of file +[ {"name": "Heartbeat","type": "record","namespace": "com.nasdaq.ncds.nfn","fields": [{"name": "TimeStamp","type": "long"}], "version" : "1"},{ "type" : "record", "name" : "AdminDailyStatistics", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"MutualFundMediaList", "type" : "string"}, {"name":"MutualFundSupplementalList", "type" : "string"}, {"name":"MutualFundReporting", "type" : "string"}, {"name":"MoneyMarketFundMediaList", "type" : "string"}, {"name":"MoneyMarketFundSupplementalList", "type" : "string"}, {"name":"MoneyMarketFundReporting", "type" : "string"}, {"name":"DebtUITList", "type" : "string"}, {"name":"DebtUITReporting", "type" : "string"}, {"name":"EquityUITList", "type" : "string"}, {"name":"EquityUITReporting", "type" : "string"}, {"name":"StructuredProductList", "type" : "string"}, {"name":"StructuredProductReporting", "type" : "string"}, {"name":"AnnuityList", "type" : "string"}, {"name":"AnnuityReporting", "type" : "string"}, {"name":"AIPList", "type" : "string"}, {"name":"AIPReporting", "type" : "string"}, {"name":"NextSharesList", "type" : "string"}, {"name":"NextSharesReporting", "type" : "string"}, {"name":"CollectiveInvestmentTrustList", "type" : "string"}, {"name":"CollectiveInvestmentTrustReporting", "type" : "string"}, {"name":"ManagedAccountsList", "type" : "string"}, {"name":"ManagedAccountsReporting", "type" : "string"}, {"name":"SeparateAccountsList", "type" : "string"}, {"name":"SeparateAccountsReporting", "type" : "string"}, {"name":"HedgeFundList", "type" : "string"}, {"name":"HedgeFundReporting", "type" : "string"}, {"name":"DemandDepositAccountList", "type" : "string"}, {"name":"DemandDepositAccountReporting", "type" : "string"}, {"name":"DataServiceSpinCount", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "AdminGeneral", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"SystemAlert", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "AdminSymbolDirectory", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"InstrumentTypeTier", "type" : "string"}, {"name":"InstrumentCode", "type" : "string"}, {"name":"Symbol", "type" : "string"}, {"name":"PricingFrequency", "type" : "string"}, {"name":"InstrumentName", "type" : "string"}, {"name":"ExchangeCodeForListedInstruments", "type" : "string"}, {"name":"ExchangeSymbolForListedInstruments", "type" : "string"}, {"name":"Currency", "type" : "string"}, {"name":"InstrumentRegistration", "type" : "string"}, {"name":"ModelPortfolioFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "AdminSymbolDirectoryExpandedInstrumentCode", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlEndOfDay", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlEndOfRetransmissionRequests", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlEndOfSummarySpin", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlEndOfTransmission", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlLineIntegrity", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlMessageSequenceNumberReset", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlSessionClose", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlSessionOpen", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlStartOfDay", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ControlStartOfSummarySpin", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ValuationMessageDistributions", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"InstrumentTypeTier", "type" : "string"}, {"name":"Symbol", "type" : "string"}, {"name":"Action", "type" : "string"}, {"name":"ShortTermCapitalGain", "type" : "string"}, {"name":"LongTermCapitalGain", "type" : "string"}, {"name":"UnAllocatedDistributions", "type" : "string"}, {"name":"ROC", "type" : "string"}, {"name":"Currency", "type" : "string"}, {"name":"DstPaymentDate", "type" : "string"}, {"name":"DstRecordDate", "type" : "string"}, {"name":"DstExDate", "type" : "string"}, {"name":"DstReinvestDate", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ValuationMessageDividends", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"InstrumentTypeTier", "type" : "string"}, {"name":"Symbol", "type" : "string"}, {"name":"Action", "type" : "string"}, {"name":"CashDistributionType", "type" : "string"}, {"name":"CashDistributionTotal", "type" : "string"}, {"name":"CashDistributionNonQualified", "type" : "string"}, {"name":"CashDistributionQualified", "type" : "string"}, {"name":"CashDistributionTaxFree", "type" : "string"}, {"name":"TaxCreditOrdinaryForeign", "type" : "string"}, {"name":"TaxCreditQualifiedForeign", "type" : "string"}, {"name":"StockDividendRatio", "type" : "string"}, {"name":"Currency", "type" : "string"}, {"name":"DivPaymentDate", "type" : "string"}, {"name":"DivRecordDate", "type" : "string"}, {"name":"DivExDate", "type" : "string"}, {"name":"DivReinvestDate", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ValuationMessageGeneral", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"InstrumentTypeTier", "type" : "string"}, {"name":"Symbol", "type" : "string"}, {"name":"ReportingType", "type" : "string"}, {"name":"Footnotes", "type" : "string"}, {"name":"NAV", "type" : "string"}, {"name":"OfferPrice", "type" : "string"}, {"name":"MarketPrice", "type" : "string"}, {"name":"RedemptionPrice", "type" : "string"}, {"name":"WrapPrice", "type" : "string"}, {"name":"TotalNetAssets", "type" : "string"}, {"name":"CurrentYield", "type" : "string"}, {"name":"CurrentYieldDirection", "type" : "string"}, {"name":"EstimatedLongTermReturn", "type" : "string"}, {"name":"EstimatedLongTermReturnDirection", "type" : "string"}, {"name":"AccruedInterest", "type" : "string"}, {"name":"DailyDividendFactor", "type" : "string"}, {"name":"DailyDividendAdjustmentIndicator", "type" : "string"}, {"name":"Currency", "type" : "string"}, {"name":"EntryDate", "type" : "string"} ], "version" : "1" },{ "type" : "record", "name" : "ValuationMessageMoneyMarkets", "namespace" : "com.nasdaq.ncds.nfn", "fields" : [ {"name":"MessageCategory", "type" : "string"}, {"name":"MessageType", "type" : "string"}, {"name":"SessionIdentifier", "type" : "string"}, {"name":"RetransmissionRequester", "type" : "string"}, {"name":"MessageSequenceNumber", "type" : "string"}, {"name":"OriginatorId", "type" : "string"}, {"name":"MessageDateTime", "type" : "string"}, {"name":"TestSymbolFlag", "type" : "string"}, {"name":"InstrumentTypeTier", "type" : "string"}, {"name":"Symbol", "type" : "string"}, {"name":"ReportingType", "type" : "string"}, {"name":"Footnotes", "type" : "string"}, {"name":"AverageMaturity", "type" : "string"}, {"name":"AverageLife", "type" : "string"}, {"name":"NAV", "type" : "string"}, {"name":"YieldGross7Day", "type" : "string"}, {"name":"YieldGross7DayDirection", "type" : "string"}, {"name":"YieldSubsidized7Day", "type" : "string"}, {"name":"YieldSubsidized7DayDirection", "type" : "string"}, {"name":"YieldEffectiveAnnualized7Day", "type" : "string"}, {"name":"YieldEffectiveAnnualized7DayDirection", "type" : "string"}, {"name":"Yield30Day", "type" : "string"}, {"name":"Yield30DayDirection", "type" : "string"}, {"name":"Yield30DayDate", "type" : "string"}, {"name":"TotalNetAssets", "type" : "string"}, {"name":"DailyDividendFactor", "type" : "string"}, {"name":"DailyDividendAdjustmentIndicator", "type" : "string"}, {"name":"Currency", "type" : "string"}, {"name":"EntryDate", "type" : "string"}, {"name":"CalculationTime", "type" : "string"} ], "version" : "1" }, "null"] \ No newline at end of file diff --git a/ncdssdk_client/src/main/python/ncdsclient/NCDSSession.py b/ncdssdk_client/src/main/python/ncdsclient/NCDSSession.py index 42fd5a4..e41c1aa 100644 --- a/ncdssdk_client/src/main/python/ncdsclient/NCDSSession.py +++ b/ncdssdk_client/src/main/python/ncdsclient/NCDSSession.py @@ -107,7 +107,7 @@ def top_cmd(self): for i, record in enumerate(records): if i >= numOfRecords: break - print("key: " + record.key() + "\n" + + print("key: " + str(record.key()) + "\n" + "value: " + str(record.value())) else: print("Access to topic is not granted") diff --git a/requirements.in b/requirements.in index c8e595a..091acfc 100644 --- a/requirements.in +++ b/requirements.in @@ -4,3 +4,4 @@ oauthlib>=3.1.0,<4 requests>=2.25.1,<3 requests-oauthlib>=1.3.0,<2 avro>=1.10.2,<2 +pytz>=2023.3 diff --git a/requirements.txt b/requirements.txt index b267212..60e74d9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -34,3 +34,4 @@ urllib3==1.26.6 # via requests zipp==3.4.1 # via importlib-metadata +pytz==2023.3 \ No newline at end of file diff --git a/setup.py b/setup.py index ed583b6..a3fba7c 100644 --- a/setup.py +++ b/setup.py @@ -1,40 +1,40 @@ -from setuptools import setup, find_packages -import pathlib - -here = pathlib.Path(__file__).parent.resolve() - -# Get long description from README -long_description = (here / 'README.md').read_text(encoding='utf-8') - -setup( - name='ncdssdk', - version='0.4.0', - description='A Python SDK for developing applications to access the NCDS API', - long_description=long_description, - long_description_content_type='text/markdown', - author='Nasdaq', - classifiers=[ - # Indicate who your project is intended for - 'Intended Audience :: Developers', - 'Topic :: Software Development :: Build Tools', - - # Pick your license as you wish - 'License :: OSI Approved :: Apache Software License', - - # Specify the Python versions you support here. In particular, ensure - # that you indicate you support Python 3. These classifiers are *not* - # checked by 'pip install'. See instead 'python_requires' below. - 'Programming Language :: Python :: 3.9', - ], - keywords='Nasdaq, NCDS, ncdssdk', - packages=find_packages(), - python_requires='>=3.9, <4', - install_requires=open("requirements.in").readlines(), - - include_package_data=True, - # We could possibly use entry_points parameter with console_scripts here to specify the NCDSSession script - - project_urls={ # Optional - 'Source': 'https://github.com/Nasdaq/NasdaqCloudDataService-SDK-Python', - }, -) \ No newline at end of file +from setuptools import setup, find_packages +import pathlib + +here = pathlib.Path(__file__).parent.resolve() + +# Get long description from README +long_description = (here / 'README.md').read_text(encoding='utf-8') + +setup( + name='ncdssdk', + version='0.5.0', + description='A Python SDK for developing applications to access the NCDS API', + long_description=long_description, + long_description_content_type='text/markdown', + author='Nasdaq', + classifiers=[ + # Indicate who your project is intended for + 'Intended Audience :: Developers', + 'Topic :: Software Development :: Build Tools', + + # Pick your license as you wish + 'License :: OSI Approved :: Apache Software License', + + # Specify the Python versions you support here. In particular, ensure + # that you indicate you support Python 3. These classifiers are *not* + # checked by 'pip install'. See instead 'python_requires' below. + 'Programming Language :: Python :: 3.9', + ], + keywords='Nasdaq, NCDS, ncdssdk', + packages=find_packages(), + python_requires='>=3.9, <4', + install_requires=open("requirements.in").readlines(), + + include_package_data=True, + # We could possibly use entry_points parameter with console_scripts here to specify the NCDSSession script + + project_urls={ # Optional + 'Source': 'https://github.com/Nasdaq/NasdaqCloudDataService-SDK-Python', + }, +) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

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