/* * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals. * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using Python.Runtime; namespace QuantConnect.Interfaces { /// /// Represents a generic collection of key/value pairs that implements python dictionary methods. /// public interface IExtendedDictionary { /// /// Removes all keys and values from the . /// void clear(); /// /// Creates a shallow copy of the . /// /// Returns a shallow copy of the dictionary. It doesn't modify the original dictionary. PyDict copy(); /// /// Creates a new dictionary from the given sequence of elements. /// /// Sequence of elements which is to be used as keys for the new dictionary /// Returns a new dictionary with the given sequence of elements as the keys of the dictionary. PyDict fromkeys(TKey[] sequence); /// /// Creates a new dictionary from the given sequence of elements with a value provided by the user. /// /// Sequence of elements which is to be used as keys for the new dictionary /// Value which is set to each each element of the dictionary /// Returns a new dictionary with the given sequence of elements as the keys of the dictionary. /// Each element of the newly created dictionary is set to the provided value. PyDict fromkeys(TKey[] sequence, TValue value); /// /// Returns the value for the specified key if key is in dictionary. /// /// Key to be searched in the dictionary /// The value for the specified key if key is in dictionary. /// None if the key is not found and value is not specified. TValue get(TKey key); /// /// Returns the value for the specified key if key is in dictionary. /// /// Key to be searched in the dictionary /// Value to be returned if the key is not found. The default value is null. /// The value for the specified key if key is in dictionary. /// value if the key is not found and value is specified. TValue get(TKey key, TValue value); /// /// Returns a view object that displays a list of dictionary's (key, value) tuple pairs. /// /// Returns a view object that displays a list of a given dictionary's (key, value) tuple pair. PyList items(); /// /// Returns a view object that displays a list of all the keys in the dictionary /// /// Returns a view object that displays a list of all the keys. /// When the dictionary is changed, the view object also reflect these changes. PyList keys(); /// /// Returns and removes an arbitrary element (key, value) pair from the dictionary. /// /// Returns an arbitrary element (key, value) pair from the dictionary /// removes an arbitrary element(the same element which is returned) from the dictionary. /// Note: Arbitrary elements and random elements are not same.The popitem() doesn't return a random element. PyTuple popitem(); /// /// Returns the value of a key (if the key is in dictionary). If not, it inserts key with a value to the dictionary. /// /// Key with null/None value is inserted to the dictionary if key is not in the dictionary. /// The value of the key if it is in the dictionary /// None if key is not in the dictionary TValue setdefault(TKey key); /// /// Returns the value of a key (if the key is in dictionary). If not, it inserts key with a value to the dictionary. /// /// Key with a value default_value is inserted to the dictionary if key is not in the dictionary. /// Default value /// The value of the key if it is in the dictionary /// default_value if key is not in the dictionary and default_value is specified TValue setdefault(TKey key, TValue default_value); /// /// Removes and returns an element from a dictionary having the given key. /// /// Key which is to be searched for removal /// If key is found - removed/popped element from the dictionary /// If key is not found - KeyError exception is raised TValue pop(TKey key); /// /// Removes and returns an element from a dictionary having the given key. /// /// Key which is to be searched for removal /// Value which is to be returned when the key is not in the dictionary /// If key is found - removed/popped element from the dictionary /// If key is not found - value specified as the second argument(default) TValue pop(TKey key, TValue default_value); /// /// Updates the dictionary with the elements from the another dictionary object or from an iterable of key/value pairs. /// The update() method adds element(s) to the dictionary if the key is not in the dictionary.If the key is in the dictionary, it updates the key with the new value. /// /// Takes either a dictionary or an iterable object of key/value pairs (generally tuples). void update(PyObject other); /// /// Returns a view object that displays a list of all the values in the dictionary. /// /// Returns a view object that displays a list of all values in a given dictionary. PyList values(); } }