Qore Util Module Reference 1.11
Loading...
Searching...
No Matches
Util.qm.dox.h
1// -*- mode: c++; indent-tabs-mode: nil -*-
3
4/* Util.qm Copyright 2014 - 2024 Qore Technologies, s.r.o.
5
6 Permission is hereby granted, free of charge, to any person obtaining a
7 copy of this software and associated documentation files (the "Software"),
8 to deal in the Software without restriction, including without limitation
9 the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 and/or sell copies of the Software, and to permit persons to whom the
11 Software is furnished to do so, subject to the following conditions:
12
13 The above copyright notice and this permission notice shall be included in
14 all copies or substantial portions of the Software.
15
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 DEALINGS IN THE SOFTWARE.
23*/
24
25// minimum Qore version
26
27// do not use $ for vars, assume local var scope
28
29// require type definitions everywhere
30
31// enable all warnings
32
33
179namespace Init {
180 init();
181
182};
183
185namespace Util {
187public hashdecl AllowedValueInfo {
190
192 *string short_desc;
193
195 auto value;
196
198 string desc;
199};
200
202
204public hashdecl UriQueryInfo {
206 string method;
207
209 *hash<auto> params;
210
212
214 *hash<auto> path_params;
215};
216
218
235 int parse_memory_size(string str, *bool use_binary);
236
237
239
252 int compare_version(string lv, string rv);
253
254
256
274 string normalize_dir(string path, string cwd = getcwd());
275
276
278
293 string normalize_dir_unix(string path, string cwd = getcwd());
294
295
297
312 string normalize_dir_windows(string path, string cwd = getcwd());
313
314
316
329 string get_relative_path(string basedir, string path, string cwd = getcwd());
330
331
333
346 bool absolute_path(string path);
347
348
350
363 bool absolute_path_unix(string path);
364
365
367
380 bool absolute_path_windows(string path);
381
382
383// private, non-exported helper function for parse_memory_size()
384int _get_size(string num, number mult);
385
386
387// private, non-exported constant hashes for scan_exp() below
388const ParenMap = (")": "(", "}": "{", "]": "[",);
389const FwdParenMap = map {$1.value: $1.key}, ParenMap.pairIterator();
390
391// private, non-exported constants for parsing
392const ET_RawString = 0;
393const ET_QuotedString = 1;
394const ET_BracketString = 2;
395const ET_CurlyBracketString = 3;
396const ET_Eq = 4;
397const ET_Comma = 5;
398const EtMap = ...;
399
400const Suffixes = ("th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th");
401
402// private scanner for parse_to_qore_value()
403list<hash> scan_exp(string arg);
404
405
406// private, non-exported function: tries to evaluate the argument as a Qore expression/value
407hash<auto> eval_text(string arg, bool err = False);
408
409
410// private, non-exported function: tries to evaluate the argument as a Qore expression/value
411/* returns the value parsed
412*/
413auto parse_to_basic_value(*string arg);
414
415
417
488 auto parse_to_qore_value(string arg);
489
490
492
510 string serialize_to_string(auto val);
511
512
514
522 hash<UriQueryInfo> parse_uri_query(string path);
523
524
526
531 string make_uri_query(hash<UriQueryInfo> h, string arg_separator = ';');
532
533
535
551 string get_random_string(softint len = 15, int level = 3);
552
553
555
559 string get_exception_string(hash<auto> ex);
560
561
563const StorageNames = ("Kilo", "Mega", "Giga", "Tera", "Peta", "Exa", "Zetta", "Yotta", "Bronto");
564
566const StorageAbbr = map {$1[0].lwr(): $#}, StorageNames;
567
569
577 string get_byte_size(softnumber n, int decimals = 2);
578
579
581
589 string get_marketing_byte_size(softnumber n, int decimals = 2);
590
591
593
604 bool same(list<auto> l);
605
606
608
618 list<auto> slice(list<auto> l, softlist<auto> indices);
619
620
622
641 string tmp_location();
642
643
645
662 bool is_int(string text, bool pure = False);
663
664
665const RE_FLOAT = ...;
666
667
669
686 bool is_float(string text, bool pure = False);
687
688
689const RE_NUMBER = ...;
690
691
693
711 bool is_number(string text, bool pure = False);
712
713
715
730 string lpad(softstring text, int length, string padding = ' ');
731
732
734
749 string rpad(softstring text, int length, string padding = ' ');
750
751
753
764 string ordinal(int i);
765
766
768
787 string plural(int count, string base, string singular = '', string plural = 's');
788
789
791
803 string regex_escape(string text);
804
805
807
819 string glob_to_regex(string pat);
820
821
823
834 list<auto> flatten(softlist<auto> arg);
835
836
838
849 list<int> parse_ranges(string text);
850
851
853
870 list<auto> uniq(softlist<auto> arg);
871
872
874
885 list<auto> zip();
886
887
889
903 bool check_ip_address(string ip, bool exception = False);
904
905
907
912 bool string_starts_with(string str, string substr);
913
914
916
921 bool string_ends_with(string str, string substr);
922
923
925public hashdecl UrlRetrievalOptions {
927 bool as_binary = False;
928
931
933 *hash<auto> http_headers;
934
937
940};
941
943
951 data get_file_from_sftp(string url, string path, *hash<UrlRetrievalOptions> options);
952
953
955
963 data get_file_from_ftp(string url, string path, *hash<UrlRetrievalOptions> options);
964
965
967
973 data get_file_from_http(string url, *string path, *hash<UrlRetrievalOptions> options);
974
975
977
982 data get_local_file(string path, *hash<UrlRetrievalOptions> options);
983
984
986
993 data get_file_from_url(string url, *hash<UrlRetrievalOptions> options);
994
995
997
1003 string substitute_env_vars(string str);
1004
1005
1007
1013 hash<ExceptionInfo> check_exception_serializable(hash<ExceptionInfo> ex);
1014
1015};
the Util namespace contains all the objects in the Util module
Definition Util.qm.dox.h:185
string normalize_dir_windows(string path, string cwd=getcwd())
returns a normalized Windows path name (eliminates ".", "..", and "//")
string get_byte_size(softnumber n, int decimals=2)
returns a string giving a user-friendly real storage size (ie based on 1KiB = 1024 bytes) in KiB,...
data get_file_from_http(string url, *string path, *hash< UrlRetrievalOptions > options)
Retrieves file data from an HTTP URL.
hash< ExceptionInfo > check_exception_serializable(hash< ExceptionInfo > ex)
Recursively ensure that exception arguments are serializable.
list< auto > zip()
Returns a list of lists, where the i-th list contains the i-th element from each of the argument list...
data get_file_from_ftp(string url, string path, *hash< UrlRetrievalOptions > options)
Retrieves file data from an FTP URL and a path.
string tmp_location()
Returns a path for temporary files.
list< auto > slice(list< auto > l, softlist< auto > indices)
list slice implementation
string make_uri_query(hash< UriQueryInfo > h, string arg_separator=';')
returns a serialized string for a UriQueryInfo hash
string serialize_to_string(auto val)
Serializes the given value to a string that can be deserialized with parse_to_qore_value()
bool same(list< auto > l)
checks whether given list has only unique elements
data get_local_file(string path, *hash< UrlRetrievalOptions > options)
Retrieves file data from a local file path.
string get_random_string(softint len=15, int level=3)
function that returns a random string
string ordinal(int i)
Returns string with partially textual representation of ordinal integer value.
string normalize_dir_unix(string path, string cwd=getcwd())
returns a normalized UNIX path name (starting from /, eliminates ".", "..", and "//")
string normalize_dir(string path, string cwd=getcwd())
returns a platform-specific normalized path name (starting from /, eliminates ".",...
bool is_number(string text, bool pure=False)
Checks whether string represents a (true) number value.
data get_file_from_sftp(string url, string path, *hash< UrlRetrievalOptions > options)
Retrieves file data from an SFTP URL and a path.
string lpad(softstring text, int length, string padding=' ')
Returns a string left-padded to a specified length with the specified characters.
list< auto > flatten(softlist< auto > arg)
Flattens a nested list (the nesting can be to any depth).
bool is_float(string text, bool pure=False)
Checks whether string represents a (true) float value.
auto parse_to_qore_value(string arg)
tries to convert a string (such as an argument given from the command-line) to a Qore value
bool absolute_path_windows(string path)
returns True if the argument is a Windows absolute path, False if not
string get_marketing_byte_size(softnumber n, int decimals=2)
returns a string giving a user-friendly "marketing storage" size (ie based on 1KB = 1000 bytes) in KB...
hash< UriQueryInfo > parse_uri_query(string path)
parses a URI path for a arguments and a method; where the method is the part of the path before the f...
string glob_to_regex(string pat)
Translates a shell pattern to a regular expression.
string rpad(softstring text, int length, string padding=' ')
Returns a string right-padded to a specified length with the specified characters.
data get_file_from_url(string url, *hash< UrlRetrievalOptions > options)
Retrieves file data from the given URL.
string get_exception_string(hash< auto > ex)
returns a multi-line string from the exception hash argument suitable for logging or output on the co...
string substitute_env_vars(string str)
Substitutes environment variables in a string and returns the string.
bool string_starts_with(string str, string substr)
Verifies whether a string begins with specific substring.
const StorageNames
storage names (Geop, which would normally follow Bronto, is excluded as the abbreviation would be GB/...
Definition Util.qm.dox.h:563
string regex_escape(string text)
Escapes (backslashes) all non-alphanumeric characters in a string.
list< int > parse_ranges(string text)
Parses a string and returns a list of integers.
int compare_version(string lv, string rv)
compares complex versions by breaking down strings into component parts
string plural(int count, string base, string singular='', string plural='s')
Returns string with number and proper singular/plural form of noun.
bool string_ends_with(string str, string substr)
Verifies whether a string ends with specific substring.
bool absolute_path_unix(string path)
returns True if the argument is a UNIX absolute path, False if not
bool check_ip_address(string ip, bool exception=False)
verifies if a string is an IPv4 or IPv6 address
bool is_int(string text, bool pure=False)
Checks whether string represents a (true) integer value.
int parse_memory_size(string str, *bool use_binary)
Returns a size in bytes from a string where "1M" = 1048576 and so forth.
list< auto > uniq(softlist< auto > arg)
Returns a duplicate-free version of the list.
string get_relative_path(string basedir, string path, string cwd=getcwd())
returns a path as a relative path from another directory
const StorageAbbr
hash of single-letter storage name abbreviations
Definition Util.qm.dox.h:566
bool absolute_path(string path)
returns True if the argument is an absolute path, False if not
Allowed value hash.
Definition Util.qm.dox.h:187
*string short_desc
A short description in plain text for the value.
Definition Util.qm.dox.h:192
auto value
The value.
Definition Util.qm.dox.h:195
string desc
Description for the value.
Definition Util.qm.dox.h:198
*string display_name
A display name for the allowed value.
Definition Util.qm.dox.h:189
the return value of the parse_uri_query() function
Definition Util.qm.dox.h:204
*hash< auto > params
(only present if a "?" character is present in the input); the part of the path after the first "?...
Definition Util.qm.dox.h:209
string method
the part of the URI path before the first "?" character or the entire path if no "?...
Definition Util.qm.dox.h:206
*hash< auto > path_params
path params; only when matching a request with a REST schema
Definition Util.qm.dox.h:214
URL retrieval options for get_file_from_url()
Definition Util.qm.dox.h:925
*string ssh2_private_key
SSH2 private key path.
Definition Util.qm.dox.h:936
bool as_binary
Return the file data as binary data; if False (the default), a string will be returned.
Definition Util.qm.dox.h:927
*hash< auto > http_headers
HTTP headers to add to any HTTP GET request.
Definition Util.qm.dox.h:933
*string default_path
The default path for files with relative paths.
Definition Util.qm.dox.h:930
*string ssh2_public_key
SSH2 public key path.
Definition Util.qm.dox.h:939