Skip to content

Commit c77c97e

Browse files
authored
Upgrade Core to 01c95cab9eae020a6ed2be65161bdc5df4d10d27 (#431)
Signed-off-by: Juan Cruz Viotti <[email protected]>
1 parent 3c95429 commit c77c97e

File tree

17 files changed

+215
-135
lines changed

17 files changed

+215
-135
lines changed

DEPENDENCIES

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
vendorpull https://github.com/sourcemeta/vendorpull dea311b5bfb53b6926a4140267959ae334d3ecf4
2-
core https://github.com/sourcemeta/core 6406a832a02d943fac523260c3f5c6a6bac16ebf
2+
core https://github.com/sourcemeta/core 01c95cab9eae020a6ed2be65161bdc5df4d10d27
33
jsonbinpack https://github.com/sourcemeta/jsonbinpack 3a5e2e37ad664be277a34145a9efc0ab14558421
44
blaze https://github.com/sourcemeta/blaze 60fba0a876480852e490b1ea66694fc1c73ba7a5
55
curl https://github.com/curl/curl curl-8_14_0

src/command_bundle.cc

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
#include <sourcemeta/core/io.h>
12
#include <sourcemeta/core/json.h>
23
#include <sourcemeta/core/jsonschema.h>
4+
#include <sourcemeta/core/yaml.h>
35

46
#include <cstdlib> // EXIT_SUCCESS
57
#include <iostream> // std::cout
@@ -23,14 +25,13 @@ auto sourcemeta::jsonschema::cli::bundle(
2325
const std::filesystem::path schema_path{options.at("").front()};
2426
const auto custom_resolver{resolver(
2527
options, options.contains("h") || options.contains("http"), dialect)};
26-
auto schema{sourcemeta::jsonschema::cli::read_file(schema_path)};
27-
28-
sourcemeta::core::bundle(
29-
schema, sourcemeta::core::schema_official_walker, custom_resolver,
30-
dialect,
31-
sourcemeta::core::URI::from_path(
32-
sourcemeta::jsonschema::cli::safe_weakly_canonical(schema_path))
33-
.recompose());
28+
auto schema{sourcemeta::core::read_yaml_or_json(schema_path)};
29+
30+
sourcemeta::core::bundle(schema, sourcemeta::core::schema_official_walker,
31+
custom_resolver, dialect,
32+
sourcemeta::core::URI::from_path(
33+
sourcemeta::core::weakly_canonical(schema_path))
34+
.recompose());
3435

3536
if (options.contains("w") || options.contains("without-id")) {
3637
std::cerr << "warning: You are opting in to remove schema identifiers in "

src/command_compile.cc

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
#include <sourcemeta/core/io.h>
12
#include <sourcemeta/core/json.h>
23
#include <sourcemeta/core/jsonschema.h>
4+
#include <sourcemeta/core/yaml.h>
35

46
#include <sourcemeta/blaze/compiler.h>
57

@@ -25,13 +27,12 @@ auto sourcemeta::jsonschema::cli::compile(
2527
const auto custom_resolver{resolver(
2628
options, options.contains("h") || options.contains("http"), dialect)};
2729

28-
const auto schema{sourcemeta::jsonschema::cli::read_file(schema_path)};
30+
const auto schema{sourcemeta::core::read_yaml_or_json(schema_path)};
2931

3032
if (!sourcemeta::core::is_schema(schema)) {
3133
std::cerr << "error: The schema file you provided does not represent a "
3234
"valid JSON Schema\n "
33-
<< sourcemeta::jsonschema::cli::safe_weakly_canonical(schema_path)
34-
.string()
35+
<< sourcemeta::core::weakly_canonical(schema_path).string()
3536
<< "\n";
3637
return EXIT_FAILURE;
3738
}
@@ -44,7 +45,7 @@ auto sourcemeta::jsonschema::cli::compile(
4445
: sourcemeta::blaze::Mode::Exhaustive,
4546
dialect,
4647
sourcemeta::core::URI::from_path(
47-
sourcemeta::jsonschema::cli::safe_weakly_canonical(schema_path))
48+
sourcemeta::core::weakly_canonical(schema_path))
4849
.recompose())};
4950

5051
const auto template_json{sourcemeta::blaze::to_json(schema_template)};

src/command_decode.cc

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
#include <sourcemeta/core/io.h>
12
#include <sourcemeta/core/json.h>
23
#include <sourcemeta/core/jsonschema.h>
4+
35
#include <sourcemeta/jsonbinpack/compiler.h>
46
#include <sourcemeta/jsonbinpack/runtime.h>
57

@@ -49,21 +51,23 @@ auto sourcemeta::jsonschema::cli::decode(
4951
dialect));
5052
const auto encoding{sourcemeta::jsonbinpack::load(schema)};
5153

52-
std::ifstream input_stream{sourcemeta::jsonschema::cli::safe_weakly_canonical(
53-
options.at("").front()),
54-
std::ios::binary};
54+
std::ifstream input_stream{
55+
sourcemeta::core::weakly_canonical(options.at("").front()),
56+
std::ios::binary};
5557
assert(!input_stream.fail());
5658
assert(input_stream.is_open());
5759

5860
const std::filesystem::path output{options.at("").at(1)};
59-
std::ofstream output_stream(safe_weakly_canonical(output), std::ios::binary);
61+
std::ofstream output_stream(sourcemeta::core::weakly_canonical(output),
62+
std::ios::binary);
6063
output_stream.exceptions(std::ios_base::badbit);
6164
sourcemeta::jsonbinpack::Decoder decoder{input_stream};
6265

6366
if (output.extension() == ".jsonl") {
6467
log_verbose(options)
6568
<< "Interpreting input as JSONL: "
66-
<< safe_weakly_canonical(options.at("").front()).string() << "\n";
69+
<< sourcemeta::core::weakly_canonical(options.at("").front()).string()
70+
<< "\n";
6771

6872
std::size_t count{0};
6973
while (has_data(input_stream)) {

src/command_encode.cc

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#include <sourcemeta/core/json.h>
33
#include <sourcemeta/core/jsonl.h>
44
#include <sourcemeta/core/jsonschema.h>
5+
#include <sourcemeta/core/yaml.h>
6+
57
#include <sourcemeta/jsonbinpack/compiler.h>
68
#include <sourcemeta/jsonbinpack/runtime.h>
79

@@ -42,12 +44,14 @@ auto sourcemeta::jsonschema::cli::encode(
4244
std::cerr << "original file size: " << original_size << " bytes\n";
4345

4446
if (document.extension() == ".jsonl") {
45-
log_verbose(options) << "Interpreting input as JSONL: "
46-
<< safe_weakly_canonical(document).string() << "\n";
47+
log_verbose(options)
48+
<< "Interpreting input as JSONL: "
49+
<< sourcemeta::core::weakly_canonical(document).string() << "\n";
4750

4851
auto stream{sourcemeta::core::read_file(document)};
49-
std::ofstream output_stream(safe_weakly_canonical(options.at("").at(1)),
50-
std::ios::binary);
52+
std::ofstream output_stream(
53+
sourcemeta::core::weakly_canonical(options.at("").at(1)),
54+
std::ios::binary);
5155
output_stream.exceptions(std::ios_base::badbit);
5256
sourcemeta::jsonbinpack::Encoder encoder{output_stream};
5357
std::size_t count{0};
@@ -66,9 +70,10 @@ auto sourcemeta::jsonschema::cli::encode(
6670
<< "%\n";
6771
} else {
6872
const auto entry{
69-
sourcemeta::jsonschema::cli::read_file(options.at("").front())};
70-
std::ofstream output_stream(safe_weakly_canonical(options.at("").at(1)),
71-
std::ios::binary);
73+
sourcemeta::core::read_yaml_or_json(options.at("").front())};
74+
std::ofstream output_stream(
75+
sourcemeta::core::weakly_canonical(options.at("").at(1)),
76+
std::ios::binary);
7277
output_stream.exceptions(std::ios_base::badbit);
7378
sourcemeta::jsonbinpack::Encoder encoder{output_stream};
7479
encoder.write(entry, encoding);

src/command_inspect.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
#include <sourcemeta/core/io.h>
12
#include <sourcemeta/core/json.h>
23
#include <sourcemeta/core/jsonschema.h>
4+
#include <sourcemeta/core/yaml.h>
35

46
#include <cstdlib> // EXIT_SUCCESS, EXIT_FAILURE
57
#include <iostream> // std::cout
@@ -136,7 +138,7 @@ auto sourcemeta::jsonschema::cli::inspect(
136138

137139
const std::filesystem::path schema_path{options.at("").front()};
138140
const sourcemeta::core::JSON schema{
139-
sourcemeta::jsonschema::cli::read_file(schema_path)};
141+
sourcemeta::core::read_yaml_or_json(schema_path)};
140142

141143
const auto dialect{default_dialect(options)};
142144
const auto custom_resolver{resolver(
@@ -158,7 +160,7 @@ auto sourcemeta::jsonschema::cli::inspect(
158160
identifier.has_value()
159161
? std::optional<sourcemeta::core::JSON::String>(std::nullopt)
160162
: sourcemeta::core::URI::from_path(
161-
sourcemeta::jsonschema::cli::safe_weakly_canonical(schema_path))
163+
sourcemeta::core::weakly_canonical(schema_path))
162164
.recompose());
163165

164166
if (options.contains("json") || options.contains("j")) {

src/command_metaschema.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#include <sourcemeta/core/io.h>
12
#include <sourcemeta/core/json.h>
23
#include <sourcemeta/core/jsonschema.h>
34

@@ -34,9 +35,7 @@ auto sourcemeta::jsonschema::cli::metaschema(
3435
if (!sourcemeta::core::is_schema(entry.second)) {
3536
std::cerr << "error: The schema file you provided does not represent a "
3637
"valid JSON Schema\n "
37-
<< sourcemeta::jsonschema::cli::safe_weakly_canonical(
38-
entry.first)
39-
.string()
38+
<< sourcemeta::core::weakly_canonical(entry.first).string()
4039
<< "\n";
4140
return EXIT_FAILURE;
4241
}
@@ -95,10 +94,12 @@ auto sourcemeta::jsonschema::cli::metaschema(
9594
if (evaluator.validate(cache.at(dialect.value()), entry.second,
9695
std::ref(output))) {
9796
log_verbose(options)
98-
<< "ok: " << safe_weakly_canonical(entry.first).string()
97+
<< "ok: "
98+
<< sourcemeta::core::weakly_canonical(entry.first).string()
9999
<< "\n matches " << dialect.value() << "\n";
100100
} else {
101-
std::cerr << "fail: " << safe_weakly_canonical(entry.first).string()
101+
std::cerr << "fail: "
102+
<< sourcemeta::core::weakly_canonical(entry.first).string()
102103
<< "\n";
103104
print(output, std::cerr);
104105
result = false;

src/command_test.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
#include <sourcemeta/core/io.h>
12
#include <sourcemeta/core/json.h>
23
#include <sourcemeta/core/jsonschema.h>
34
#include <sourcemeta/core/uri.h>
5+
#include <sourcemeta/core/yaml.h>
46

57
#include <sourcemeta/blaze/compiler.h>
68
#include <sourcemeta/blaze/evaluator.h>
@@ -25,15 +27,14 @@ static auto get_data(const sourcemeta::core::JSON &test_case,
2527
assert(test_case.defines("dataPath"));
2628
assert(test_case.at("dataPath").is_string());
2729

28-
const std::filesystem::path data_path{
29-
sourcemeta::jsonschema::cli::safe_weakly_canonical(
30-
base / test_case.at("dataPath").to_string())};
30+
const std::filesystem::path data_path{sourcemeta::core::weakly_canonical(
31+
base / test_case.at("dataPath").to_string())};
3132
if (verbose) {
3233
std::cerr << "Reading test instance file: " << data_path.string() << "\n";
3334
}
3435

3536
try {
36-
return sourcemeta::jsonschema::cli::read_file(data_path);
37+
return sourcemeta::core::read_yaml_or_json(data_path);
3738
} catch (...) {
3839
std::cout << "\n";
3940
throw;
@@ -53,7 +54,7 @@ auto sourcemeta::jsonschema::cli::test(
5354
for (const auto &entry : for_each_json(options.at(""), parse_ignore(options),
5455
parse_extensions(options))) {
5556
const sourcemeta::core::JSON test{
56-
sourcemeta::jsonschema::cli::read_file(entry.first)};
57+
sourcemeta::core::read_yaml_or_json(entry.first)};
5758

5859
if (!test.is_object()) {
5960
std::cout << entry.first.string() << ":";

src/command_validate.cc

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include <sourcemeta/core/json.h>
33
#include <sourcemeta/core/jsonl.h>
44
#include <sourcemeta/core/jsonschema.h>
5+
#include <sourcemeta/core/yaml.h>
56

67
#include <sourcemeta/blaze/compiler.h>
78
#include <sourcemeta/blaze/evaluator.h>
@@ -41,12 +42,10 @@ auto get_schema_template(
4142
if (precompiled.has_value()) {
4243
sourcemeta::jsonschema::cli::log_verbose(options)
4344
<< "Parsing pre-compiled schema template: "
44-
<< sourcemeta::jsonschema::cli::safe_weakly_canonical(
45-
precompiled.value())
46-
.string()
45+
<< sourcemeta::core::weakly_canonical(precompiled.value()).string()
4746
<< "\n";
4847
const auto schema_template{
49-
sourcemeta::jsonschema::cli::read_file(precompiled.value())};
48+
sourcemeta::core::read_yaml_or_json(precompiled.value())};
5049
const auto precompiled_result{
5150
sourcemeta::blaze::from_json(schema_template)};
5251
if (precompiled_result.has_value()) {
@@ -94,13 +93,12 @@ auto sourcemeta::jsonschema::cli::validate(
9493
const auto custom_resolver{resolver(
9594
options, options.contains("h") || options.contains("http"), dialect)};
9695

97-
const auto schema{sourcemeta::jsonschema::cli::read_file(schema_path)};
96+
const auto schema{sourcemeta::core::read_yaml_or_json(schema_path)};
9897

9998
if (!sourcemeta::core::is_schema(schema)) {
10099
std::cerr << "error: The schema file you provided does not represent a "
101100
"valid JSON Schema\n "
102-
<< sourcemeta::jsonschema::cli::safe_weakly_canonical(schema_path)
103-
.string()
101+
<< sourcemeta::core::weakly_canonical(schema_path).string()
104102
<< "\n";
105103
return EXIT_FAILURE;
106104
}
@@ -110,10 +108,9 @@ auto sourcemeta::jsonschema::cli::validate(
110108
const auto trace{options.contains("t") || options.contains("trace")};
111109
const auto json_output{options.contains("j") || options.contains("json")};
112110

113-
const auto default_id{
114-
sourcemeta::core::URI::from_path(
115-
sourcemeta::jsonschema::cli::safe_weakly_canonical(schema_path))
116-
.recompose()};
111+
const auto default_id{sourcemeta::core::URI::from_path(
112+
sourcemeta::core::weakly_canonical(schema_path))
113+
.recompose()};
117114
const sourcemeta::core::JSON bundled{
118115
sourcemeta::core::bundle(schema, sourcemeta::core::schema_official_walker,
119116
custom_resolver, dialect, default_id)};
@@ -134,9 +131,9 @@ auto sourcemeta::jsonschema::cli::validate(
134131
for (; iterator != options.at("").cend(); ++iterator) {
135132
const std::filesystem::path instance_path{*iterator};
136133
if (instance_path.extension() == ".jsonl") {
137-
log_verbose(options) << "Interpreting input as JSONL: "
138-
<< safe_weakly_canonical(instance_path).string()
139-
<< "\n";
134+
log_verbose(options)
135+
<< "Interpreting input as JSONL: "
136+
<< sourcemeta::core::weakly_canonical(instance_path).string() << "\n";
140137
std::size_t index{0};
141138
auto stream{sourcemeta::core::read_file(instance_path)};
142139
try {
@@ -192,15 +189,18 @@ auto sourcemeta::jsonschema::cli::validate(
192189
}
193190
} else if (subresult) {
194191
log_verbose(options)
195-
<< "ok: " << safe_weakly_canonical(instance_path).string()
192+
<< "ok: "
193+
<< sourcemeta::core::weakly_canonical(instance_path).string()
196194
<< " (entry #" << index << ")"
197-
<< "\n matches " << safe_weakly_canonical(schema_path).string()
195+
<< "\n matches "
196+
<< sourcemeta::core::weakly_canonical(schema_path).string()
198197
<< "\n";
199198
print_annotations(output, options, std::cerr);
200199
} else {
201-
std::cerr << "fail: "
202-
<< safe_weakly_canonical(instance_path).string()
203-
<< " (entry #" << index << ")\n\n";
200+
std::cerr
201+
<< "fail: "
202+
<< sourcemeta::core::weakly_canonical(instance_path).string()
203+
<< " (entry #" << index << ")\n\n";
204204
sourcemeta::core::prettify(instance, std::cerr);
205205
std::cerr << "\n\n";
206206
std::cerr << error.str();
@@ -218,8 +218,7 @@ auto sourcemeta::jsonschema::cli::validate(
218218
log_verbose(options) << "warning: The JSONL file is empty\n";
219219
}
220220
} else {
221-
const auto instance{
222-
sourcemeta::jsonschema::cli::read_file(instance_path)};
221+
const auto instance{sourcemeta::core::read_yaml_or_json(instance_path)};
223222
std::ostringstream error;
224223
sourcemeta::blaze::SimpleOutput output{instance};
225224
sourcemeta::blaze::TraceOutput trace_output{
@@ -268,12 +267,14 @@ auto sourcemeta::jsonschema::cli::validate(
268267
std::cout << "\n";
269268
} else if (subresult) {
270269
log_verbose(options)
271-
<< "ok: " << safe_weakly_canonical(instance_path).string()
272-
<< "\n matches " << safe_weakly_canonical(schema_path).string()
273-
<< "\n";
270+
<< "ok: "
271+
<< sourcemeta::core::weakly_canonical(instance_path).string()
272+
<< "\n matches "
273+
<< sourcemeta::core::weakly_canonical(schema_path).string() << "\n";
274274
print_annotations(output, options, std::cerr);
275275
} else {
276-
std::cerr << "fail: " << safe_weakly_canonical(instance_path).string()
276+
std::cerr << "fail: "
277+
<< sourcemeta::core::weakly_canonical(instance_path).string()
277278
<< "\n";
278279
std::cerr << error.str();
279280
print(output, std::cerr);

0 commit comments

Comments
 (0)