From d0104e3b3587b55056a7b8473ef464ce00a51b4e Mon Sep 17 00:00:00 2001 From: Simon Stewart Date: Sat, 27 Feb 2021 10:01:27 +0000 Subject: [PATCH] Run buildifier over the repo. No logical changes (#528) --- BUILD | 6 +- WORKSPACE | 19 +- coursier.bzl | 33 +- examples/android_kotlin_app/WORKSPACE | 1 - examples/android_local_test/WORKSPACE | 1 - examples/simple/WORKSPACE | 1 - private/dependency_tree_parser.bzl | 8 +- private/rules/javadoc.bzl | 24 +- private/rules/jetifier_maven_map.bzl | 234 +++---- private/rules/jvm_import.bzl | 2 +- private/rules/maven_project_jar.bzl | 6 +- private/rules/maven_publish.bzl | 10 +- settings/stamp_manifest.bzl | 4 +- tests/com/jvm/external/BUILD | 4 +- tests/com/jvm/external/maven/BUILD | 5 +- tests/integration/BUILD | 11 +- tests/integration/java_export/BUILD | 16 +- tests/unit/coursier_test.bzl | 31 +- tests/unit/coursier_utilities_test.bzl | 59 +- tests/unit/jetifier/BUILD | 2 - tests/unit/jetifier/jetifier_test.bzl | 5 +- third_party/bazel_json/lib/json_parser.bzl | 606 +++++++++++------- third_party/bazel_json/lib/json_rules.bzl | 46 +- third_party/bazel_json/test/BUILD | 43 +- .../bazel_json/test/json_parse_test_data.bzl | 25 +- .../bazel_json/test/json_parse_tests.bzl | 70 +- third_party/jetifier/BUILD | 4 +- 27 files changed, 741 insertions(+), 535 deletions(-) diff --git a/BUILD b/BUILD index c732e8f8c..ae3c120bb 100644 --- a/BUILD +++ b/BUILD @@ -33,6 +33,9 @@ stardoc( bzl_library( name = "implementation", srcs = [ + ":coursier.bzl", + ":defs.bzl", + ":specs.bzl", "//:private/coursier_utilities.bzl", "//:private/dependency_tree_parser.bzl", "//:private/proxy.bzl", @@ -48,9 +51,6 @@ bzl_library( "//private/rules:pom_file.bzl", "//settings:stamp_manifest.bzl", "//third_party/bazel_json/lib:json_parser.bzl", - ":coursier.bzl", - ":defs.bzl", - ":specs.bzl", ], ) diff --git a/WORKSPACE b/WORKSPACE index bb1c1a1ee..37b0c3203 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -62,7 +62,6 @@ rules_jvm_external_setup() # Begin test dependencies load("//:defs.bzl", "maven_install") - load("//:specs.bzl", "maven") maven_install( @@ -165,7 +164,7 @@ maven_install( "com.google.guava:guava:27.0-jre", "javax.inject:javax.inject:1", "org.apache.beam:beam-sdks-java-core:2.15.0", - "org.bouncycastle:bcprov-jdk15on:1.64" + "org.bouncycastle:bcprov-jdk15on:1.64", ], maven_install_json = "//tests/custom_maven_install:manifest_stamp_testing_install.json", repositories = [ @@ -329,12 +328,12 @@ maven_install( "com.typesafe.play:play_2.11:2.5.19", "org.scalatestplus.play:scalatestplus-play_2.11:2.0.1", ], + fetch_sources = True, repositories = [ "https://repo1.maven.org/maven2", ], - version_conflict_policy = "pinned", - fetch_sources = True, use_unsafe_shared_cache = True, + version_conflict_policy = "pinned", ) maven_install( @@ -344,11 +343,11 @@ maven_install( "com.android.support:appcompat-v7:28.0.0", "com.android.support:swiperefreshlayout:28.0.0", ], + jetify = True, repositories = [ "https://repo1.maven.org/maven2", "https://maven.google.com", ], - jetify = True, ) maven_install( @@ -358,14 +357,14 @@ maven_install( "com.android.support:appcompat-v7:28.0.0", "com.android.support:swiperefreshlayout:28.0.0", ], - repositories = [ - "https://repo1.maven.org/maven2", - "https://maven.google.com", - ], jetify = True, jetify_include_list = [ "com.android.support:appcompat-v7", ], + repositories = [ + "https://repo1.maven.org/maven2", + "https://maven.google.com", + ], ) # https://github.com/bazelbuild/rules_jvm_external/issues/351 @@ -376,12 +375,12 @@ maven_install( "io.quarkus:quarkus-maven-plugin:1.0.1.Final", "io.quarkus:quarkus-bom-descriptor-json:1.0.1.Final", ], + fetch_sources = True, maven_install_json = "//tests/custom_maven_install:json_artifacts_testing_install.json", repositories = [ "https://repo.maven.apache.org/maven2/", "https://repo.spring.io/plugins-release/", ], - fetch_sources = True, ) # https://github.com/bazelbuild/rules_jvm_external/issues/433 diff --git a/coursier.bzl b/coursier.bzl index 76ac8d171..b52068781 100644 --- a/coursier.bzl +++ b/coursier.bzl @@ -192,6 +192,7 @@ def compute_dependency_inputs_signature(artifacts): artifact_inputs = [] for artifact in artifacts: parsed = json_parse(artifact) + # Sort the keys to provide a stable order keys = sorted(parsed.keys()) flattened = ":".join(["%s=%s" % (key, parsed[key]) for key in keys]) @@ -278,7 +279,7 @@ def get_home_netrc_contents(repository_ctx): return "" def _get_jq_http_files(): - '''Returns repository targets for the `jq` dependency that `pin.sh` needs.''' + """Returns repository targets for the `jq` dependency that `pin.sh` needs.""" lines = [] for jq in JQ_VERSIONS: lines.extend([ @@ -384,7 +385,7 @@ def _pinned_coursier_fetch_impl(repository_ctx): "or:\n" + " 1) Set 'fail_if_repin_required' to 'False' in 'maven_install'\n" + " 2) Run 'bazel run @unpinned_%s//:pin'\n" % repository_ctx.name + - " 3) Reset 'fail_if_repin_required' to 'True' in 'maven_install'\n\n"); + " 3) Reset 'fail_if_repin_required' to 'True' in 'maven_install'\n\n") else: print("The inputs to %s_install.json have changed, but the lock file has not been regenerated. " % repository_ctx.name + "Consider running 'bazel run @unpinned_%s//:pin'" % repository_ctx.name) @@ -525,8 +526,8 @@ def remove_auth_from_url(url): host = url_parts[0] if "@" not in host: return url - last_index=host.rfind("@", 0, None) - userless_host=host[last_index + 1:] + last_index = host.rfind("@", 0, None) + userless_host = host[last_index + 1:] new_url = "{}://{}".format(protocol, "/".join([userless_host] + url_parts[1:])) return new_url @@ -612,8 +613,7 @@ def make_coursier_dep_tree( fetch_javadoc, use_unsafe_shared_cache, timeout, - report_progress_prefix="", -): + report_progress_prefix = ""): # Set up artifact exclusion, if any. From coursier fetch --help: # # Path to the local exclusion file. Syntax: --. `--` means minus. Example file content: @@ -681,18 +681,23 @@ def make_coursier_dep_tree( repository_ctx.report_progress( "%sResolving and fetching the transitive closure of %s artifact(s).." % ( - report_progress_prefix, len(artifact_coordinates))) + report_progress_prefix, + len(artifact_coordinates), + ), + ) exec_result = repository_ctx.execute( cmd, timeout = timeout, environment = environment, - quiet = not _is_verbose(repository_ctx)) + quiet = not _is_verbose(repository_ctx), + ) if (exec_result.return_code != 0): fail("Error while fetching artifact with coursier: " + exec_result.stderr) return _deduplicate_artifacts(json_parse(repository_ctx.read(repository_ctx.path( - "dep-tree.json")))) + "dep-tree.json", + )))) def _download_jq(repository_ctx): jq_version = None @@ -720,12 +725,14 @@ def _coursier_fetch_impl(repository_ctx): # Try running coursier once cmd = _generate_java_jar_command(repository_ctx, repository_ctx.path("coursier")) + # Add --help because calling the default coursier command on Windows will # hang waiting for input cmd.append("--help") exec_result = repository_ctx.execute( cmd, - quiet = not _is_verbose(repository_ctx)) + quiet = not _is_verbose(repository_ctx), + ) if exec_result.return_code != 0: fail("Unable to run coursier: " + exec_result.stderr) @@ -816,7 +823,7 @@ def _coursier_fetch_impl(repository_ctx): coord_split = artifact["coord"].split(":") coord_unversioned = "{}:{}".format(coord_split[0], coord_split[1]) should_jetify = jetify_all or (repository_ctx.attr.jetify and coord_unversioned in jetify_include_dict) - if should_jetify : + if should_jetify: artifact["directDependencies"] = jetify_artifact_dependencies(artifact["directDependencies"]) artifact["dependencies"] = jetify_artifact_dependencies(artifact["dependencies"]) @@ -888,7 +895,8 @@ def _coursier_fetch_impl(repository_ctx): ) exec_result = repository_ctx.execute( hasher_command + ["--argsfile", repository_ctx.path("hasher_argsfile")], - quiet = not _is_verbose(repository_ctx)) + quiet = not _is_verbose(repository_ctx), + ) if exec_result.return_code != 0: fail("Error while obtaining the sha256 checksums: " + exec_result.stderr) @@ -938,6 +946,7 @@ def _coursier_fetch_impl(repository_ctx): outdated_build_file_content = "" else: repository_name = repository_ctx.name + # Add outdated artifact files if this is a pinned repo outdated_build_file_content = _BUILD_OUTDATED _add_outdated_files(repository_ctx, artifacts, repositories) diff --git a/examples/android_kotlin_app/WORKSPACE b/examples/android_kotlin_app/WORKSPACE index 4f0896d42..2550b67c0 100644 --- a/examples/android_kotlin_app/WORKSPACE +++ b/examples/android_kotlin_app/WORKSPACE @@ -6,7 +6,6 @@ android_sdk_repository( build_tools_version = "28.0.2", ) - # BEGIN io_bazel_rules_kotlin RULES_KOTLIN_VERSION = "9051eb053f9c958440603d557316a6e9fda14687" diff --git a/examples/android_local_test/WORKSPACE b/examples/android_local_test/WORKSPACE index 4388511d8..51a0d85b5 100644 --- a/examples/android_local_test/WORKSPACE +++ b/examples/android_local_test/WORKSPACE @@ -6,7 +6,6 @@ android_sdk_repository( build_tools_version = "28.0.2", ) - http_archive( name = "robolectric", sha256 = "2ee850ca521288db72b0dedb9ecbda55b64d11c470435a882f8daf615091253d", diff --git a/examples/simple/WORKSPACE b/examples/simple/WORKSPACE index 1b17b5bec..2d28ef3b5 100644 --- a/examples/simple/WORKSPACE +++ b/examples/simple/WORKSPACE @@ -4,7 +4,6 @@ android_sdk_repository( build_tools_version = "28.0.2", ) - local_repository( name = "rules_jvm_external", path = "../../", diff --git a/private/dependency_tree_parser.bzl b/private/dependency_tree_parser.bzl index 87a8776d1..06e259567 100644 --- a/private/dependency_tree_parser.bzl +++ b/private/dependency_tree_parser.bzl @@ -103,14 +103,16 @@ def _generate_imports(repository_ctx, dep_tree, explicit_artifacts, neverlink_ar elif repository_ctx.attr.fetch_javadoc and get_classifier(artifact["coord"]) == "javadoc": seen_imports[target_label] = True all_imports.append( - "filegroup(\n\tname = \"%s\",\n\tsrcs = [\"%s\"],\n\ttags = [\"javadoc\"],\n)" % (target_label, artifact_path)) + "filegroup(\n\tname = \"%s\",\n\tsrcs = [\"%s\"],\n\ttags = [\"javadoc\"],\n)" % (target_label, artifact_path), + ) elif get_packaging(artifact["coord"]) == "json": seen_imports[target_label] = True versioned_target_alias_label = "%s_extension" % escape(artifact["coord"]) all_imports.append( - "alias(\n\tname = \"%s\",\n\tactual = \"%s\",\n\tvisibility = [\"//visibility:public\"],\n)" % (target_label, versioned_target_alias_label)) + "alias(\n\tname = \"%s\",\n\tactual = \"%s\",\n\tvisibility = [\"//visibility:public\"],\n)" % (target_label, versioned_target_alias_label), + ) if repository_ctx.attr.maven_install_json: - all_imports.append(_genrule_copy_artifact_from_http_file(artifact)) + all_imports.append(_genrule_copy_artifact_from_http_file(artifact)) elif target_label in labels_to_override: # Override target labels with the user provided mapping, instead of generating # a jvm_import/aar_import based on information in dep_tree. diff --git a/private/rules/javadoc.bzl b/private/rules/javadoc.bzl index 5bc74e65d..8f02bcc1b 100644 --- a/private/rules/javadoc.bzl +++ b/private/rules/javadoc.bzl @@ -30,21 +30,21 @@ javadoc = rule( _javadoc_impl, doc = "Generate a javadoc from all the `deps`", attrs = { - "deps": attr.label_list( - doc = """The java libraries to generate javadocs for. + "deps": attr.label_list( + doc = """The java libraries to generate javadocs for. The source jars of each dep will be used to generate the javadocs. Currently docs for transitive dependencies are not generated. """, - mandatory = True, - providers = [ - [JavaInfo], - ], - ), - "_javadoc": attr.label( - default = "//private/tools/java/rules/jvm/external/javadoc", - cfg = "host", - executable = True, - ), + mandatory = True, + providers = [ + [JavaInfo], + ], + ), + "_javadoc": attr.label( + default = "//private/tools/java/rules/jvm/external/javadoc", + cfg = "host", + executable = True, + ), }, ) diff --git a/private/rules/jetifier_maven_map.bzl b/private/rules/jetifier_maven_map.bzl index c191a6d45..647042574 100644 --- a/private/rules/jetifier_maven_map.bzl +++ b/private/rules/jetifier_maven_map.bzl @@ -10,56 +10,56 @@ # ("from.groupId", "from.artifactId"): {"from.version": ("to.groupId", "to.artifactId", "to.version")} jetifier_maven_map = { - ("com.android.support", "animated-vector-drawable"): {"28.0.0" : ("androidx.vectordrawable", "vectordrawable-animated", "1.0.0")}, - ("com.android.support", "appcompat-v7"): {"28.0.0" : ("androidx.appcompat", "appcompat", "1.0.0")}, - ("com.android.support", "cardview-v7"): {"28.0.0" : ("androidx.cardview", "cardview", "1.0.0")}, - ("com.android.support", "customtabs"): {"28.0.0" : ("androidx.browser", "browser", "1.0.0")}, - ("com.android.support", "design"): {"28.0.0" : ("com.google.android.material", "material", "1.0.0")}, - ("com.android.support", "exifinterface"): {"28.0.0" : ("androidx.exifinterface", "exifinterface", "1.0.0")}, - ("com.android.support", "gridlayout-v7"): {"28.0.0" : ("androidx.gridlayout", "gridlayout", "1.0.0")}, - ("com.android.support", "leanback-v17"): {"28.0.0" : ("androidx.leanback", "leanback", "1.0.0")}, - ("com.android.support", "mediarouter-v7"): {"28.0.0-alpha5" : ("androidx.mediarouter", "mediarouter", "1.0.0-alpha5")}, - ("com.android.support", "multidex"): {"1.0.3" : ("androidx.multidex", "multidex", "2.0.0")}, - ("com.android.support", "multidex-instrumentation"): {"1.0.3" : ("androidx.multidex", "multidex-instrumentation", "2.0.0")}, - ("com.android.support", "palette-v7"): {"28.0.0" : ("androidx.palette", "palette", "1.0.0")}, - ("com.android.support", "percent"): {"28.0.0" : ("androidx.percentlayout", "percentlayout", "1.0.0")}, - ("com.android.support", "preference-leanback-v17"): {"28.0.0" : ("androidx.leanback", "leanback-preference", "1.0.0")}, - ("com.android.support", "preference-v14"): {"28.0.0" : ("androidx.legacy", "legacy-preference-v14", "1.0.0")}, - ("com.android.support", "preference-v7"): {"28.0.0" : ("androidx.preference", "preference", "1.0.0")}, - ("com.android.support", "recommendation"): {"28.0.0" : ("androidx.recommendation", "recommendation", "1.0.0")}, - ("com.android.support", "recyclerview-v7"): {"28.0.0" : ("androidx.recyclerview", "recyclerview", "1.0.0")}, - ("com.android.support", "support-annotations"): {"28.0.0" : ("androidx.annotation", "annotation", "1.0.0")}, - ("com.android.support", "support-compat"): {"28.0.0" : ("androidx.core", "core", "1.0.0")}, - ("com.android.support", "support-content"): {"28.0.0" : ("androidx.contentpager", "contentpager", "1.0.0")}, - ("com.android.support", "support-core-ui"): {"28.0.0" : ("androidx.legacy", "legacy-support-core-ui", "1.0.0")}, - ("com.android.support", "support-core-utils"): {"28.0.0" : ("androidx.legacy", "legacy-support-core-utils", "1.0.0")}, - ("com.android.support", "support-dynamic-animation"): {"28.0.0" : ("androidx.dynamicanimation", "dynamicanimation", "1.0.0")}, - ("com.android.support", "support-emoji"): {"28.0.0" : ("androidx.emoji", "emoji", "1.0.0")}, - ("com.android.support", "support-emoji-appcompat"): {"28.0.0" : ("androidx.emoji", "emoji-appcompat", "1.0.0")}, - ("com.android.support", "support-emoji-bundled"): {"28.0.0" : ("androidx.emoji", "emoji-bundled", "1.0.0")}, - ("com.android.support", "support-fragment"): {"28.0.0" : ("androidx.fragment", "fragment", "1.0.0")}, - ("com.android.support", "support-media-compat"): {"28.0.0" : ("androidx.media", "media", "1.0.0")}, - ("com.android.support", "support-tv-provider"): {"28.0.0" : ("androidx.tvprovider", "tvprovider", "1.0.0")}, - ("com.android.support", "support-v13"): {"28.0.0" : ("androidx.legacy", "legacy-support-v13", "1.0.0")}, - ("com.android.support", "support-v4"): {"28.0.0" : ("androidx.legacy", "legacy-support-v4", "1.0.0")}, - ("com.android.support", "support-vector-drawable"): {"28.0.0" : ("androidx.vectordrawable", "vectordrawable", "1.0.0")}, - ("com.android.support", "textclassifier"): {"28.0.0" : ("androidx.textclassifier", "textclassifier", "1.0.0")}, - ("com.android.support", "transition"): {"28.0.0" : ("androidx.transition", "transition", "1.0.0")}, - ("com.android.support", "wear"): {"28.0.0" : ("androidx.wear", "wear", "1.0.0")}, - ("com.android.support", "asynclayoutinflater"): {"28.0.0" : ("androidx.asynclayoutinflater", "asynclayoutinflater", "1.0.0")}, - ("com.android.support", "collections"): {"28.0.0" : ("androidx.collection", "collection", "1.0.0")}, - ("com.android.support", "coordinatorlayout"): {"28.0.0" : ("androidx.coordinatorlayout", "coordinatorlayout", "1.0.0")}, - ("com.android.support", "cursoradapter"): {"28.0.0" : ("androidx.cursoradapter", "cursoradapter", "1.0.0")}, - ("com.android.support", "customview"): {"28.0.0" : ("androidx.customview", "customview", "1.0.0")}, - ("com.android.support", "documentfile"): {"28.0.0" : ("androidx.documentfile", "documentfile", "1.0.0")}, - ("com.android.support", "drawerlayout"): {"28.0.0" : ("androidx.drawerlayout", "drawerlayout", "1.0.0")}, - ("com.android.support", "interpolator"): {"28.0.0" : ("androidx.interpolator", "interpolator", "1.0.0")}, - ("com.android.support", "loader"): {"28.0.0" : ("androidx.loader", "loader", "1.0.0")}, - ("com.android.support", "localbroadcastmanager"): {"28.0.0" : ("androidx.localbroadcastmanager", "localbroadcastmanager", "1.0.0")}, - ("com.android.support", "print"): {"28.0.0" : ("androidx.print", "print", "1.0.0")}, - ("com.android.support", "slidingpanelayout"): {"28.0.0" : ("androidx.slidingpanelayout", "slidingpanelayout", "1.0.0")}, - ("com.android.support", "swiperefreshlayout"): {"28.0.0" : ("androidx.swiperefreshlayout", "swiperefreshlayout", "1.0.0")}, - ("com.android.support", "viewpager"): {"28.0.0" : ("androidx.viewpager", "viewpager", "1.0.0")}, + ("com.android.support", "animated-vector-drawable"): {"28.0.0": ("androidx.vectordrawable", "vectordrawable-animated", "1.0.0")}, + ("com.android.support", "appcompat-v7"): {"28.0.0": ("androidx.appcompat", "appcompat", "1.0.0")}, + ("com.android.support", "cardview-v7"): {"28.0.0": ("androidx.cardview", "cardview", "1.0.0")}, + ("com.android.support", "customtabs"): {"28.0.0": ("androidx.browser", "browser", "1.0.0")}, + ("com.android.support", "design"): {"28.0.0": ("com.google.android.material", "material", "1.0.0")}, + ("com.android.support", "exifinterface"): {"28.0.0": ("androidx.exifinterface", "exifinterface", "1.0.0")}, + ("com.android.support", "gridlayout-v7"): {"28.0.0": ("androidx.gridlayout", "gridlayout", "1.0.0")}, + ("com.android.support", "leanback-v17"): {"28.0.0": ("androidx.leanback", "leanback", "1.0.0")}, + ("com.android.support", "mediarouter-v7"): {"28.0.0-alpha5": ("androidx.mediarouter", "mediarouter", "1.0.0-alpha5")}, + ("com.android.support", "multidex"): {"1.0.3": ("androidx.multidex", "multidex", "2.0.0")}, + ("com.android.support", "multidex-instrumentation"): {"1.0.3": ("androidx.multidex", "multidex-instrumentation", "2.0.0")}, + ("com.android.support", "palette-v7"): {"28.0.0": ("androidx.palette", "palette", "1.0.0")}, + ("com.android.support", "percent"): {"28.0.0": ("androidx.percentlayout", "percentlayout", "1.0.0")}, + ("com.android.support", "preference-leanback-v17"): {"28.0.0": ("androidx.leanback", "leanback-preference", "1.0.0")}, + ("com.android.support", "preference-v14"): {"28.0.0": ("androidx.legacy", "legacy-preference-v14", "1.0.0")}, + ("com.android.support", "preference-v7"): {"28.0.0": ("androidx.preference", "preference", "1.0.0")}, + ("com.android.support", "recommendation"): {"28.0.0": ("androidx.recommendation", "recommendation", "1.0.0")}, + ("com.android.support", "recyclerview-v7"): {"28.0.0": ("androidx.recyclerview", "recyclerview", "1.0.0")}, + ("com.android.support", "support-annotations"): {"28.0.0": ("androidx.annotation", "annotation", "1.0.0")}, + ("com.android.support", "support-compat"): {"28.0.0": ("androidx.core", "core", "1.0.0")}, + ("com.android.support", "support-content"): {"28.0.0": ("androidx.contentpager", "contentpager", "1.0.0")}, + ("com.android.support", "support-core-ui"): {"28.0.0": ("androidx.legacy", "legacy-support-core-ui", "1.0.0")}, + ("com.android.support", "support-core-utils"): {"28.0.0": ("androidx.legacy", "legacy-support-core-utils", "1.0.0")}, + ("com.android.support", "support-dynamic-animation"): {"28.0.0": ("androidx.dynamicanimation", "dynamicanimation", "1.0.0")}, + ("com.android.support", "support-emoji"): {"28.0.0": ("androidx.emoji", "emoji", "1.0.0")}, + ("com.android.support", "support-emoji-appcompat"): {"28.0.0": ("androidx.emoji", "emoji-appcompat", "1.0.0")}, + ("com.android.support", "support-emoji-bundled"): {"28.0.0": ("androidx.emoji", "emoji-bundled", "1.0.0")}, + ("com.android.support", "support-fragment"): {"28.0.0": ("androidx.fragment", "fragment", "1.0.0")}, + ("com.android.support", "support-media-compat"): {"28.0.0": ("androidx.media", "media", "1.0.0")}, + ("com.android.support", "support-tv-provider"): {"28.0.0": ("androidx.tvprovider", "tvprovider", "1.0.0")}, + ("com.android.support", "support-v13"): {"28.0.0": ("androidx.legacy", "legacy-support-v13", "1.0.0")}, + ("com.android.support", "support-v4"): {"28.0.0": ("androidx.legacy", "legacy-support-v4", "1.0.0")}, + ("com.android.support", "support-vector-drawable"): {"28.0.0": ("androidx.vectordrawable", "vectordrawable", "1.0.0")}, + ("com.android.support", "textclassifier"): {"28.0.0": ("androidx.textclassifier", "textclassifier", "1.0.0")}, + ("com.android.support", "transition"): {"28.0.0": ("androidx.transition", "transition", "1.0.0")}, + ("com.android.support", "wear"): {"28.0.0": ("androidx.wear", "wear", "1.0.0")}, + ("com.android.support", "asynclayoutinflater"): {"28.0.0": ("androidx.asynclayoutinflater", "asynclayoutinflater", "1.0.0")}, + ("com.android.support", "collections"): {"28.0.0": ("androidx.collection", "collection", "1.0.0")}, + ("com.android.support", "coordinatorlayout"): {"28.0.0": ("androidx.coordinatorlayout", "coordinatorlayout", "1.0.0")}, + ("com.android.support", "cursoradapter"): {"28.0.0": ("androidx.cursoradapter", "cursoradapter", "1.0.0")}, + ("com.android.support", "customview"): {"28.0.0": ("androidx.customview", "customview", "1.0.0")}, + ("com.android.support", "documentfile"): {"28.0.0": ("androidx.documentfile", "documentfile", "1.0.0")}, + ("com.android.support", "drawerlayout"): {"28.0.0": ("androidx.drawerlayout", "drawerlayout", "1.0.0")}, + ("com.android.support", "interpolator"): {"28.0.0": ("androidx.interpolator", "interpolator", "1.0.0")}, + ("com.android.support", "loader"): {"28.0.0": ("androidx.loader", "loader", "1.0.0")}, + ("com.android.support", "localbroadcastmanager"): {"28.0.0": ("androidx.localbroadcastmanager", "localbroadcastmanager", "1.0.0")}, + ("com.android.support", "print"): {"28.0.0": ("androidx.print", "print", "1.0.0")}, + ("com.android.support", "slidingpanelayout"): {"28.0.0": ("androidx.slidingpanelayout", "slidingpanelayout", "1.0.0")}, + ("com.android.support", "swiperefreshlayout"): {"28.0.0": ("androidx.swiperefreshlayout", "swiperefreshlayout", "1.0.0")}, + ("com.android.support", "viewpager"): {"28.0.0": ("androidx.viewpager", "viewpager", "1.0.0")}, # Databinding is not replaced on purpose due to direct usage by gradle. # Unknown if this is a problem in Bazel. # ("com.android.databinding", "adapters"): {"undefined" : ("androidx.databinding", "databinding-adapters", "undefined")}, @@ -67,71 +67,71 @@ jetifier_maven_map = { # ("com.android.databinding", "compiler"): {"undefined" : ("androidx.databinding", "databinding-compiler", "undefined")}, # ("com.android.databinding", "compilerCommon"): {"undefined" : ("androidx.databinding", "databinding-compiler-common", "undefined")}, # ("com.android.databinding", "library"): {"undefined" : ("androidx.databinding", "databinding-runtime", "undefined")}, - ("com.android.support", "versionedparcelable"): {"28.0.0" : ("androidx.versionedparcelable", "versionedparcelable", "1.0.0")}, - ("android.arch.work", "work-runtime"): {"1.0.0" : ("androidx.work", "work-runtime", "2.0.0")}, - ("android.arch.work", "work-runtime-ktx"): {"1.0.0" : ("androidx.work", "work-runtime-ktx", "2.0.0")}, - ("android.arch.work", "work-rxjava2"): {"1.0.0" : ("androidx.work", "work-rxjava2", "2.0.0")}, - ("android.arch.work", "work-testing"): {"1.0.0" : ("androidx.work", "work-testing", "2.0.0")}, - ("android.arch.navigation", "navigation-common"): {"1.0.0" : ("androidx.navigation", "navigation-common", "2.0.0")}, - ("android.arch.navigation", "navigation-common-ktx"): {"1.0.0" : ("androidx.navigation", "navigation-common-ktx", "2.0.0")}, - ("android.arch.navigation", "navigation-dynamic-features-fragment"): {"1.0.0" : ("androidx.navigation", "navigation-dynamic-features-fragment", "2.0.0")}, - ("android.arch.navigation", "navigation-dynamic-features-runtime"): {"1.0.0" : ("androidx.navigation", "navigation-dynamic-features-runtime", "2.0.0")}, - ("android.arch.navigation", "navigation-fragment"): {"1.0.0" : ("androidx.navigation", "navigation-fragment", "2.0.0")}, - ("android.arch.navigation", "navigation-fragment-ktx"): {"1.0.0" : ("androidx.navigation", "navigation-fragment-ktx", "2.0.0")}, - ("android.arch.navigation", "navigation-runtime"): {"1.0.0" : ("androidx.navigation", "navigation-runtime", "2.0.0")}, - ("android.arch.navigation", "navigation-runtime-ktx"): {"1.0.0" : ("androidx.navigation", "navigation-runtime-ktx", "2.0.0")}, - ("android.arch.navigation", "navigation-ui"): {"1.0.0" : ("androidx.navigation", "navigation-ui", "2.0.0")}, - ("android.arch.navigation", "navigation-ui-ktx"): {"1.0.0" : ("androidx.navigation", "navigation-ui-ktx", "2.0.0")}, - ("android.arch.core", "common"): {"1.1.1" : ("androidx.arch.core", "core-common", "2.0.0")}, - ("android.arch.core", "core"): {"1.0.0-alpha3" : ("androidx.arch.core", "core", "2.0.0")}, - ("android.arch.core", "core-testing"): {"1.1.1" : ("androidx.arch.core", "core-testing", "2.0.0")}, - ("android.arch.core", "runtime"): {"1.1.1" : ("androidx.arch.core", "core-runtime", "2.0.0")}, - ("android.arch.lifecycle", "common"): {"1.1.1" : ("androidx.lifecycle", "lifecycle-common", "2.0.0")}, - ("android.arch.lifecycle", "common-java8"): {"1.1.1" : ("androidx.lifecycle", "lifecycle-common-java8", "2.0.0")}, - ("android.arch.lifecycle", "compiler"): {"1.1.1" : ("androidx.lifecycle", "lifecycle-compiler", "2.0.0")}, - ("android.arch.lifecycle", "extensions"): {"1.1.1" : ("androidx.lifecycle", "lifecycle-extensions", "2.0.0")}, - ("android.arch.lifecycle", "reactivestreams"): {"1.1.1" : ("androidx.lifecycle", "lifecycle-reactivestreams", "2.0.0")}, - ("android.arch.lifecycle", "runtime"): {"1.1.1" : ("androidx.lifecycle", "lifecycle-runtime", "2.0.0")}, - ("android.arch.lifecycle", "viewmodel"): {"1.1.1" : ("androidx.lifecycle", "lifecycle-viewmodel", "2.0.0")}, - ("android.arch.lifecycle", "livedata"): {"1.1.1" : ("androidx.lifecycle", "lifecycle-livedata", "2.0.0")}, - ("android.arch.lifecycle", "livedata-core"): {"1.1.1" : ("androidx.lifecycle", "lifecycle-livedata-core", "2.0.0")}, - ("android.arch.paging", "common"): {"1.0.0" : ("androidx.paging", "paging-common", "2.0.0")}, - ("android.arch.paging", "runtime"): {"1.0.0" : ("androidx.paging", "paging-runtime", "2.0.0")}, - ("android.arch.paging", "rxjava2"): {"1.0.0-alpha1" : ("androidx.paging", "paging-rxjava2", "2.0.0")}, - ("android.arch.persistence", "db"): {"1.1.0" : ("androidx.sqlite", "sqlite", "2.0.0")}, - ("android.arch.persistence", "db-framework"): {"1.1.0" : ("androidx.sqlite", "sqlite-framework", "2.0.0")}, - ("android.arch.persistence.room", "common"): {"1.1.0" : ("androidx.room", "room-common", "2.0.0")}, - ("android.arch.persistence.room", "compiler"): {"1.1.0" : ("androidx.room", "room-compiler", "2.0.0")}, - ("android.arch.persistence.room", "migration"): {"1.1.0" : ("androidx.room", "room-migration", "2.0.0")}, - ("android.arch.persistence.room", "runtime"): {"1.1.0" : ("androidx.room", "room-runtime", "2.0.0")}, - ("android.arch.persistence.room", "rxjava2"): {"1.1.0" : ("androidx.room", "room-rxjava2", "2.0.0")}, - ("android.arch.persistence.room", "testing"): {"1.1.0" : ("androidx.room", "room-testing", "2.0.0")}, - ("android.arch.persistence.room", "guava"): {"1.1.0" : ("androidx.room", "room-guava", "2.0.0")}, - ("com.android.support.constraint", "constraint-layout"): {"1.1.0" : ("androidx.constraintlayout", "constraintlayout", "1.1.3")}, - ("com.android.support.constraint", "constraint-layout-solver"): {"1.1.0" : ("androidx.constraintlayout", "constraintlayout-solver", "1.1.3")}, - ("com.android.support.test", "orchestrator"): {"1.0.2" : ("androidx.test", "orchestrator", "1.1.0-alpha3")}, - ("com.android.support.test", "rules"): {"1.0.2" : ("androidx.test", "rules", "1.1.0-alpha3")}, - ("com.android.support.test", "runner"): {"1.0.2" : ("androidx.test", "runner", "1.1.0-alpha3")}, - ("com.android.support.test", "monitor"): {"1.0.2" : ("androidx.test", "monitor", "1.1.0-alpha3")}, - ("com.android.support.test.espresso", "espresso-accessibility"): {"3.0.2" : ("androidx.test.espresso", "espresso-accessibility", "3.1.0-alpha3")}, - ("com.android.support.test.espresso", "espresso-contrib"): {"3.0.2" : ("androidx.test.espresso", "espresso-contrib", "3.1.0-alpha3")}, - ("com.android.support.test.espresso", "espresso-core"): {"3.0.2" : ("androidx.test.espresso", "espresso-core", "3.1.0-alpha3")}, - ("com.android.support.test.espresso", "espresso-idling-resource"): {"3.0.2" : ("androidx.test.espresso", "espresso-idling-resource", "3.1.0-alpha3")}, - ("com.android.support.test.espresso", "espresso-intents"): {"3.0.2" : ("androidx.test.espresso", "espresso-intents", "3.1.0-alpha3")}, - ("com.android.support.test.espresso", "espresso-remote"): {"3.0.2" : ("androidx.test.espresso", "espresso-remote", "3.1.0-alpha3")}, - ("com.android.support.test.espresso", "espresso-web"): {"3.0.2" : ("androidx.test.espresso", "espresso-web", "3.1.0-alpha3")}, - ("com.android.support.test.espresso.idling", "idling-concurrent"): {"3.0.2" : ("androidx.test.espresso.idling", "idling-concurrent", "3.1.0-alpha3")}, - ("com.android.support.test.espresso.idling", "idling-net"): {"3.0.2" : ("androidx.test.espresso.idling", "idling-net", "3.1.0-alpha3")}, - ("com.android.support.test.janktesthelper", "janktesthelper"): {"1.0.1" : ("androidx.test.jank", "janktesthelper", "1.0.1-alpha3")}, - ("com.android.support.test.services", "test-services"): {"1.0.2" : ("androidx.test", "test-services", "1.1.0-alpha3")}, - ("com.android.support.test.uiautomator", "uiautomator"): {"2.1.3" : ("androidx.test.uiautomator", "uiautomator", "2.2.0-alpha3")}, - ("com.android.support.test.uiautomator", "uiautomator-v18"): {"2.1.3" : ("androidx.test.uiautomator", "uiautomator", "2.2.0-alpha3")}, - ("com.android.support", "car"): {"28.0.0-alpha5" : ("androidx.car", "car", "1.0.0-alpha5")}, - ("com.android.support", "slices-core"): {"28.0.0" : ("androidx.slice", "slice-core", "1.0.0")}, - ("com.android.support", "slices-builders"): {"28.0.0" : ("androidx.slice", "slice-builders", "1.0.0")}, - ("com.android.support", "slices-view"): {"28.0.0" : ("androidx.slice", "slice-view", "1.0.0")}, - ("com.android.support", "heifwriter"): {"28.0.0" : ("androidx.heifwriter", "heifwriter", "1.0.0")}, - ("com.android.support", "recyclerview-selection"): {"28.0.0" : ("androidx.recyclerview", "recyclerview-selection", "1.0.0")}, - ("com.android.support", "webkit"): {"28.0.0" : ("androidx.webkit", "webkit", "1.0.0")}, - ("com.android.support", "biometric"): {"28.0.0-alpha03" : ("androidx.biometric", "biometric", "1.0.0-alpha03")}, + ("com.android.support", "versionedparcelable"): {"28.0.0": ("androidx.versionedparcelable", "versionedparcelable", "1.0.0")}, + ("android.arch.work", "work-runtime"): {"1.0.0": ("androidx.work", "work-runtime", "2.0.0")}, + ("android.arch.work", "work-runtime-ktx"): {"1.0.0": ("androidx.work", "work-runtime-ktx", "2.0.0")}, + ("android.arch.work", "work-rxjava2"): {"1.0.0": ("androidx.work", "work-rxjava2", "2.0.0")}, + ("android.arch.work", "work-testing"): {"1.0.0": ("androidx.work", "work-testing", "2.0.0")}, + ("android.arch.navigation", "navigation-common"): {"1.0.0": ("androidx.navigation", "navigation-common", "2.0.0")}, + ("android.arch.navigation", "navigation-common-ktx"): {"1.0.0": ("androidx.navigation", "navigation-common-ktx", "2.0.0")}, + ("android.arch.navigation", "navigation-dynamic-features-fragment"): {"1.0.0": ("androidx.navigation", "navigation-dynamic-features-fragment", "2.0.0")}, + ("android.arch.navigation", "navigation-dynamic-features-runtime"): {"1.0.0": ("androidx.navigation", "navigation-dynamic-features-runtime", "2.0.0")}, + ("android.arch.navigation", "navigation-fragment"): {"1.0.0": ("androidx.navigation", "navigation-fragment", "2.0.0")}, + ("android.arch.navigation", "navigation-fragment-ktx"): {"1.0.0": ("androidx.navigation", "navigation-fragment-ktx", "2.0.0")}, + ("android.arch.navigation", "navigation-runtime"): {"1.0.0": ("androidx.navigation", "navigation-runtime", "2.0.0")}, + ("android.arch.navigation", "navigation-runtime-ktx"): {"1.0.0": ("androidx.navigation", "navigation-runtime-ktx", "2.0.0")}, + ("android.arch.navigation", "navigation-ui"): {"1.0.0": ("androidx.navigation", "navigation-ui", "2.0.0")}, + ("android.arch.navigation", "navigation-ui-ktx"): {"1.0.0": ("androidx.navigation", "navigation-ui-ktx", "2.0.0")}, + ("android.arch.core", "common"): {"1.1.1": ("androidx.arch.core", "core-common", "2.0.0")}, + ("android.arch.core", "core"): {"1.0.0-alpha3": ("androidx.arch.core", "core", "2.0.0")}, + ("android.arch.core", "core-testing"): {"1.1.1": ("androidx.arch.core", "core-testing", "2.0.0")}, + ("android.arch.core", "runtime"): {"1.1.1": ("androidx.arch.core", "core-runtime", "2.0.0")}, + ("android.arch.lifecycle", "common"): {"1.1.1": ("androidx.lifecycle", "lifecycle-common", "2.0.0")}, + ("android.arch.lifecycle", "common-java8"): {"1.1.1": ("androidx.lifecycle", "lifecycle-common-java8", "2.0.0")}, + ("android.arch.lifecycle", "compiler"): {"1.1.1": ("androidx.lifecycle", "lifecycle-compiler", "2.0.0")}, + ("android.arch.lifecycle", "extensions"): {"1.1.1": ("androidx.lifecycle", "lifecycle-extensions", "2.0.0")}, + ("android.arch.lifecycle", "reactivestreams"): {"1.1.1": ("androidx.lifecycle", "lifecycle-reactivestreams", "2.0.0")}, + ("android.arch.lifecycle", "runtime"): {"1.1.1": ("androidx.lifecycle", "lifecycle-runtime", "2.0.0")}, + ("android.arch.lifecycle", "viewmodel"): {"1.1.1": ("androidx.lifecycle", "lifecycle-viewmodel", "2.0.0")}, + ("android.arch.lifecycle", "livedata"): {"1.1.1": ("androidx.lifecycle", "lifecycle-livedata", "2.0.0")}, + ("android.arch.lifecycle", "livedata-core"): {"1.1.1": ("androidx.lifecycle", "lifecycle-livedata-core", "2.0.0")}, + ("android.arch.paging", "common"): {"1.0.0": ("androidx.paging", "paging-common", "2.0.0")}, + ("android.arch.paging", "runtime"): {"1.0.0": ("androidx.paging", "paging-runtime", "2.0.0")}, + ("android.arch.paging", "rxjava2"): {"1.0.0-alpha1": ("androidx.paging", "paging-rxjava2", "2.0.0")}, + ("android.arch.persistence", "db"): {"1.1.0": ("androidx.sqlite", "sqlite", "2.0.0")}, + ("android.arch.persistence", "db-framework"): {"1.1.0": ("androidx.sqlite", "sqlite-framework", "2.0.0")}, + ("android.arch.persistence.room", "common"): {"1.1.0": ("androidx.room", "room-common", "2.0.0")}, + ("android.arch.persistence.room", "compiler"): {"1.1.0": ("androidx.room", "room-compiler", "2.0.0")}, + ("android.arch.persistence.room", "migration"): {"1.1.0": ("androidx.room", "room-migration", "2.0.0")}, + ("android.arch.persistence.room", "runtime"): {"1.1.0": ("androidx.room", "room-runtime", "2.0.0")}, + ("android.arch.persistence.room", "rxjava2"): {"1.1.0": ("androidx.room", "room-rxjava2", "2.0.0")}, + ("android.arch.persistence.room", "testing"): {"1.1.0": ("androidx.room", "room-testing", "2.0.0")}, + ("android.arch.persistence.room", "guava"): {"1.1.0": ("androidx.room", "room-guava", "2.0.0")}, + ("com.android.support.constraint", "constraint-layout"): {"1.1.0": ("androidx.constraintlayout", "constraintlayout", "1.1.3")}, + ("com.android.support.constraint", "constraint-layout-solver"): {"1.1.0": ("androidx.constraintlayout", "constraintlayout-solver", "1.1.3")}, + ("com.android.support.test", "orchestrator"): {"1.0.2": ("androidx.test", "orchestrator", "1.1.0-alpha3")}, + ("com.android.support.test", "rules"): {"1.0.2": ("androidx.test", "rules", "1.1.0-alpha3")}, + ("com.android.support.test", "runner"): {"1.0.2": ("androidx.test", "runner", "1.1.0-alpha3")}, + ("com.android.support.test", "monitor"): {"1.0.2": ("androidx.test", "monitor", "1.1.0-alpha3")}, + ("com.android.support.test.espresso", "espresso-accessibility"): {"3.0.2": ("androidx.test.espresso", "espresso-accessibility", "3.1.0-alpha3")}, + ("com.android.support.test.espresso", "espresso-contrib"): {"3.0.2": ("androidx.test.espresso", "espresso-contrib", "3.1.0-alpha3")}, + ("com.android.support.test.espresso", "espresso-core"): {"3.0.2": ("androidx.test.espresso", "espresso-core", "3.1.0-alpha3")}, + ("com.android.support.test.espresso", "espresso-idling-resource"): {"3.0.2": ("androidx.test.espresso", "espresso-idling-resource", "3.1.0-alpha3")}, + ("com.android.support.test.espresso", "espresso-intents"): {"3.0.2": ("androidx.test.espresso", "espresso-intents", "3.1.0-alpha3")}, + ("com.android.support.test.espresso", "espresso-remote"): {"3.0.2": ("androidx.test.espresso", "espresso-remote", "3.1.0-alpha3")}, + ("com.android.support.test.espresso", "espresso-web"): {"3.0.2": ("androidx.test.espresso", "espresso-web", "3.1.0-alpha3")}, + ("com.android.support.test.espresso.idling", "idling-concurrent"): {"3.0.2": ("androidx.test.espresso.idling", "idling-concurrent", "3.1.0-alpha3")}, + ("com.android.support.test.espresso.idling", "idling-net"): {"3.0.2": ("androidx.test.espresso.idling", "idling-net", "3.1.0-alpha3")}, + ("com.android.support.test.janktesthelper", "janktesthelper"): {"1.0.1": ("androidx.test.jank", "janktesthelper", "1.0.1-alpha3")}, + ("com.android.support.test.services", "test-services"): {"1.0.2": ("androidx.test", "test-services", "1.1.0-alpha3")}, + ("com.android.support.test.uiautomator", "uiautomator"): {"2.1.3": ("androidx.test.uiautomator", "uiautomator", "2.2.0-alpha3")}, + ("com.android.support.test.uiautomator", "uiautomator-v18"): {"2.1.3": ("androidx.test.uiautomator", "uiautomator", "2.2.0-alpha3")}, + ("com.android.support", "car"): {"28.0.0-alpha5": ("androidx.car", "car", "1.0.0-alpha5")}, + ("com.android.support", "slices-core"): {"28.0.0": ("androidx.slice", "slice-core", "1.0.0")}, + ("com.android.support", "slices-builders"): {"28.0.0": ("androidx.slice", "slice-builders", "1.0.0")}, + ("com.android.support", "slices-view"): {"28.0.0": ("androidx.slice", "slice-view", "1.0.0")}, + ("com.android.support", "heifwriter"): {"28.0.0": ("androidx.heifwriter", "heifwriter", "1.0.0")}, + ("com.android.support", "recyclerview-selection"): {"28.0.0": ("androidx.recyclerview", "recyclerview-selection", "1.0.0")}, + ("com.android.support", "webkit"): {"28.0.0": ("androidx.webkit", "webkit", "1.0.0")}, + ("com.android.support", "biometric"): {"28.0.0-alpha03": ("androidx.biometric", "biometric", "1.0.0-alpha03")}, } diff --git a/private/rules/jvm_import.bzl b/private/rules/jvm_import.bzl index e926969a5..a7fec390e 100644 --- a/private/rules/jvm_import.bzl +++ b/private/rules/jvm_import.bzl @@ -84,7 +84,7 @@ jvm_import = rule( ), "_stamp_manifest": attr.label( default = Label("@rules_jvm_external//settings:stamp_manifest"), - ) + ), }, implementation = _jvm_import_impl, provides = [JavaInfo], diff --git a/private/rules/maven_project_jar.bzl b/private/rules/maven_project_jar.bzl index 0b371790d..9b8fc38f7 100644 --- a/private/rules/maven_project_jar.bzl +++ b/private/rules/maven_project_jar.bzl @@ -29,7 +29,8 @@ def _maven_project_jar_impl(ctx): ctx.executable._merge_jars, artifact_jars, depset(transitive = [ji.transitive_runtime_jars for ji in info.dep_infos.to_list()]).to_list(), - bin_jar) + bin_jar, + ) src_jar = ctx.actions.declare_file("%s-src.jar" % ctx.label.name) _combine_jars( @@ -37,7 +38,8 @@ def _maven_project_jar_impl(ctx): ctx.executable._merge_jars, artifact_srcs, depset(transitive = [ji.transitive_source_jars for ji in info.dep_infos.to_list()]).to_list(), - src_jar) + src_jar, + ) java_toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo] ijar = java_common.run_ijar( diff --git a/private/rules/maven_publish.bzl b/private/rules/maven_publish.bzl index 77ba0c88b..d89cdd648 100644 --- a/private/rules/maven_publish.bzl +++ b/private/rules/maven_publish.bzl @@ -1,11 +1,11 @@ -MavenPublishInfo = provider ( +MavenPublishInfo = provider( fields = { "coordinates": "Maven coordinates for the project, which may be None", "pom": "Pom.xml file for metdata", "javadocs": "Javadoc jar file for documentation files", "artifact_jar": "Jar with the code and metadata for execution", "source_jar": "Jar with the source code for review", - } + }, ) _TEMPLATE = """#!/usr/bin/env bash @@ -54,8 +54,8 @@ def _maven_publish_impl(ctx): artifact_jar = ctx.file.artifact_jar, javadocs = ctx.file.javadocs, source_jar = ctx.file.source_jar, - pom = ctx.file.pom - ) + pom = ctx.file.pom, + ), ] maven_publish = rule( @@ -100,5 +100,5 @@ When signing with GPG, the current default key is used. default = "//private/tools/java/rules/jvm/external/maven:MavenPublisher", allow_files = True, ), - } + }, ) diff --git a/settings/stamp_manifest.bzl b/settings/stamp_manifest.bzl index 5c55c8f12..368b51a3b 100644 --- a/settings/stamp_manifest.bzl +++ b/settings/stamp_manifest.bzl @@ -1,9 +1,9 @@ -StampManifestProvider = provider(fields = ['stamp_enabled']) +StampManifestProvider = provider(fields = ["stamp_enabled"]) def _impl(ctx): return StampManifestProvider(stamp_enabled = ctx.build_setting_value) stamp_manifest = rule( implementation = _impl, - build_setting = config.bool(flag = True) + build_setting = config.bool(flag = True), ) diff --git a/tests/com/jvm/external/BUILD b/tests/com/jvm/external/BUILD index edb843b84..5da86d3a9 100644 --- a/tests/com/jvm/external/BUILD +++ b/tests/com/jvm/external/BUILD @@ -27,8 +27,8 @@ java_test( srcs = ["JsonArtifactsTest.java"], test_class = "com.jvm.external.JsonArtifactsTest", deps = [ - "@json_artifacts_testing//:org_json_json", "@json_artifacts_testing//:io_quarkus_quarkus_maven_plugin", + "@json_artifacts_testing//:org_json_json", ], ) @@ -45,11 +45,11 @@ java_test( java_test( name = "UnsafeSharedCacheTest", srcs = ["UnsafeSharedCacheTest.java"], + tags = ["manual"], test_class = "com.jvm.external.UnsafeSharedCacheTest", deps = [ "//tests/integration:guava_import", "@maven//:org_hamcrest_hamcrest", "@maven//:org_hamcrest_hamcrest_core", ], - tags = ["manual"], ) diff --git a/tests/com/jvm/external/maven/BUILD b/tests/com/jvm/external/maven/BUILD index 12a8d199a..237090dc0 100644 --- a/tests/com/jvm/external/maven/BUILD +++ b/tests/com/jvm/external/maven/BUILD @@ -3,8 +3,11 @@ load("//:defs.bzl", "artifact") java_test( name = "OutdatedTest", srcs = ["OutdatedTest.java"], + resources = [ + ":maven-metadata-javax-inject.xml", + ":maven-metadata-multiple-versions.xml", + ], test_class = "com.jvm.external.maven.OutdatedTest", - resources = [":maven-metadata-javax-inject.xml", ":maven-metadata-multiple-versions.xml"], deps = [ "//private/tools/java/rules/jvm/external/maven:outdated", "@outdated//:org_apache_maven_maven_artifact", diff --git a/tests/integration/BUILD b/tests/integration/BUILD index 07c13bae2..b13664b42 100644 --- a/tests/integration/BUILD +++ b/tests/integration/BUILD @@ -2,6 +2,7 @@ load("@bazel_skylib//rules:diff_test.bzl", "diff_test") genquery( name = "testonly-deps", + testonly = True, expression = "attr(testonly, 1, deps(@testonly_testing//:all, 0))", scope = [ "@testonly_testing//:org_codehaus_mojo_animal_sniffer_annotations_1_17", @@ -25,7 +26,6 @@ genquery( "@testonly_testing//:outdated", "@testonly_testing//:pin", ], - testonly = True, ) diff_test( @@ -41,10 +41,13 @@ diff_test( # https://github.com/bazelbuild/rules_jvm_external/issues/433 genquery( name = "version_interval_deps", + testonly = True, expression = "deps(@version_interval_testing//:io_grpc_grpc_netty_shaded, 2)", - opts = ["--nohost_deps", "--noimplicit_deps"], + opts = [ + "--nohost_deps", + "--noimplicit_deps", + ], scope = ["@version_interval_testing//:io_grpc_grpc_netty_shaded"], - testonly = True, ) diff_test( @@ -67,5 +70,5 @@ java_import( ], visibility = [ "//tests/com/jvm/external:__pkg__", - ] + ], ) diff --git a/tests/integration/java_export/BUILD b/tests/integration/java_export/BUILD index 18dc8ef7a..c8e4ac05b 100644 --- a/tests/integration/java_export/BUILD +++ b/tests/integration/java_export/BUILD @@ -4,35 +4,35 @@ load("//private/rules:maven_project_jar.bzl", "maven_project_jar") java_test( name = "PublishShapeTest", srcs = ["PublishShapeTest.java"], - test_class = "com.jvm.external.jvm_export.PublishShapeTest", + data = [ + "//private/tools/java/rules/jvm/external/maven:MavenPublisher_deploy.jar", + ], jvm_flags = [ "-Ddeploy.jar=$(location //private/tools/java/rules/jvm/external/maven:MavenPublisher_deploy.jar)", ], + test_class = "com.jvm.external.jvm_export.PublishShapeTest", deps = [ "//private/tools/java/rules/jvm/external/maven:MavenPublisher_deploy.jar", artifact("com.google.guava:guava"), artifact("org.hamcrest:hamcrest"), ], - data = [ - "//private/tools/java/rules/jvm/external/maven:MavenPublisher_deploy.jar", - ], ) java_test( name = "ProjectJarTest", srcs = ["ProjectJarTest.java"], - test_class = "com.jvm.external.jvm_export.ProjectJarTest", + data = [ + ":project", + ], jvm_flags = [ "-Dlocation=\"$(location :project)\"", ], + test_class = "com.jvm.external.jvm_export.ProjectJarTest", deps = [ ":project", artifact("com.google.guava:guava"), artifact("org.hamcrest:hamcrest"), ], - data = [ - ":project", - ], ) maven_project_jar( diff --git a/tests/unit/coursier_test.bzl b/tests/unit/coursier_test.bzl index a95b4063f..f7731bb3f 100644 --- a/tests/unit/coursier_test.bzl +++ b/tests/unit/coursier_test.bzl @@ -4,15 +4,14 @@ load( "add_netrc_entries_from_mirror_urls", "compute_dependency_inputs_signature", "extract_netrc_from_auth_url", - "get_netrc_lines_from_entries", "get_coursier_cache_or_default", + "get_netrc_lines_from_entries", "remove_auth_from_url", "split_url", infer = "infer_artifact_path_from_primary_and_repos", ) load("//:specs.bzl", "maven") - ALL_TESTS = [] def add_test(test_impl_func): @@ -374,16 +373,16 @@ def _get_coursier_cache_or_default_disabled_test(ctx): mock_repository_ctx = struct( os = struct( environ = { - "COURSIER_CACHE": _mock_repo_path("/does/not/matter") + "COURSIER_CACHE": _mock_repo_path("/does/not/matter"), }, name = "linux", ), - which = _mock_which + which = _mock_which, ) asserts.equals( env, "v1", - get_coursier_cache_or_default(mock_repository_ctx, False) + get_coursier_cache_or_default(mock_repository_ctx, False), ) return unittest.end(env) @@ -394,16 +393,16 @@ def _get_coursier_cache_or_default_enabled_with_default_location_linux_test(ctx) mock_repository_ctx = struct( os = struct( environ = { - "HOME": "/home/testuser" + "HOME": "/home/testuser", }, name = "linux", ), - which = _mock_which + which = _mock_which, ) asserts.equals( env, "/home/testuser/.cache/coursier/v1", - get_coursier_cache_or_default(mock_repository_ctx, True) + get_coursier_cache_or_default(mock_repository_ctx, True), ) return unittest.end(env) @@ -414,16 +413,16 @@ def _get_coursier_cache_or_default_enabled_with_default_location_mac_test(ctx): mock_repository_ctx = struct( os = struct( environ = { - "HOME": "/Users/testuser" + "HOME": "/Users/testuser", }, name = "mac", ), - which = _mock_which + which = _mock_which, ) asserts.equals( env, "/Users/testuser/Library/Caches/Coursier/v1", - get_coursier_cache_or_default(mock_repository_ctx, True) + get_coursier_cache_or_default(mock_repository_ctx, True), ) return unittest.end(env) @@ -434,16 +433,16 @@ def _get_coursier_cache_or_default_enabled_with_custom_location_test(ctx): mock_repository_ctx = struct( os = struct( environ = { - "COURSIER_CACHE": _mock_repo_path("/custom/location") + "COURSIER_CACHE": _mock_repo_path("/custom/location"), }, name = "linux", ), - which = _mock_which + which = _mock_which, ) asserts.equals( env, "/custom/location", - get_coursier_cache_or_default(mock_repository_ctx, True) + get_coursier_cache_or_default(mock_repository_ctx, True), ) return unittest.end(env) @@ -463,7 +462,7 @@ def _get_coursier_cache_or_default_enabled_with_home_dot_coursier_directory_test mock_repository_ctx = struct( os = struct( environ = { - "HOME": "/Users/testuser" + "HOME": "/Users/testuser", }, name = "mac", ), @@ -473,7 +472,7 @@ def _get_coursier_cache_or_default_enabled_with_home_dot_coursier_directory_test asserts.equals( env, "/Users/testuser/.coursier/cache/v1", - get_coursier_cache_or_default(mock_repository_ctx, True) + get_coursier_cache_or_default(mock_repository_ctx, True), ) return unittest.end(env) diff --git a/tests/unit/coursier_utilities_test.bzl b/tests/unit/coursier_utilities_test.bzl index ba1d5f185..b913361b1 100644 --- a/tests/unit/coursier_utilities_test.bzl +++ b/tests/unit/coursier_utilities_test.bzl @@ -1,7 +1,6 @@ load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") load("//:private/coursier_utilities.bzl", "escape", "get_classifier", "get_packaging", "strip_packaging_and_classifier", "strip_packaging_and_classifier_and_version") - def _escape_test_impl(ctx): env = unittest.begin(ctx) asserts.equals(env, "groupId_artifactId_version", escape("groupId:artifactId:version")) @@ -31,30 +30,56 @@ get_packaging_test = unittest.make(_get_packaging_test_impl) def _strip_packaging_and_classifier_test_impl(ctx): env = unittest.begin(ctx) - asserts.equals(env, "groupId:artifactId:version", - strip_packaging_and_classifier("groupId:artifactId:version")) + asserts.equals( + env, + "groupId:artifactId:version", + strip_packaging_and_classifier("groupId:artifactId:version"), + ) + # Note: currently only some package and classifier values are stripped - asserts.equals(env, "groupId:artifactId:packaging:version", - strip_packaging_and_classifier("groupId:artifactId:packaging:version")) - asserts.equals(env, "groupId:artifactId:packaging:classifier:version", - strip_packaging_and_classifier("groupId:artifactId:packaging:classifier:version")) - asserts.equals(env, "groupId:artifactId:version", - strip_packaging_and_classifier("groupId:artifactId:bundle:version")) - asserts.equals(env, "groupId:artifactId:version", - strip_packaging_and_classifier("groupId:artifactId:pom:sources:version")) + asserts.equals( + env, + "groupId:artifactId:packaging:version", + strip_packaging_and_classifier("groupId:artifactId:packaging:version"), + ) + asserts.equals( + env, + "groupId:artifactId:packaging:classifier:version", + strip_packaging_and_classifier("groupId:artifactId:packaging:classifier:version"), + ) + asserts.equals( + env, + "groupId:artifactId:version", + strip_packaging_and_classifier("groupId:artifactId:bundle:version"), + ) + asserts.equals( + env, + "groupId:artifactId:version", + strip_packaging_and_classifier("groupId:artifactId:pom:sources:version"), + ) return unittest.end(env) strip_packaging_and_classifier_test = unittest.make(_strip_packaging_and_classifier_test_impl) def _strip_packaging_and_classifier_and_version_test_impl(ctx): env = unittest.begin(ctx) - asserts.equals(env, "groupId:artifactId", - strip_packaging_and_classifier_and_version("groupId:artifactId:version")) + asserts.equals( + env, + "groupId:artifactId", + strip_packaging_and_classifier_and_version("groupId:artifactId:version"), + ) + # Note: currently only some package and classifier values are stripped - asserts.equals(env, "groupId:artifactId", - strip_packaging_and_classifier_and_version("groupId:artifactId:bundle:version")) - asserts.equals(env, "groupId:artifactId", - strip_packaging_and_classifier_and_version("groupId:artifactId:pom:sources:version")) + asserts.equals( + env, + "groupId:artifactId", + strip_packaging_and_classifier_and_version("groupId:artifactId:bundle:version"), + ) + asserts.equals( + env, + "groupId:artifactId", + strip_packaging_and_classifier_and_version("groupId:artifactId:pom:sources:version"), + ) return unittest.end(env) strip_packaging_and_classifier_and_version_test = unittest.make(_strip_packaging_and_classifier_and_version_test_impl) diff --git a/tests/unit/jetifier/BUILD b/tests/unit/jetifier/BUILD index 446bfdeb0..8c81f14b4 100644 --- a/tests/unit/jetifier/BUILD +++ b/tests/unit/jetifier/BUILD @@ -17,7 +17,6 @@ build_test( "@jetify_all_test//:jetified_com_android_support_appcompat_v7", "@jetify_all_test//:androidx_appcompat_appcompat", "@jetify_all_test//:androidx_appcompat_appcompat_1_0_0", - "@jetify_all_test//:com_android_support_swiperefreshlayout", "@jetify_all_test//:com_android_support_swiperefreshlayout_28_0_0", "@jetify_all_test//:jetified_com_android_support_swiperefreshlayout", @@ -45,7 +44,6 @@ build_test( name = "jetify_include_list_artifacts", targets = [ "@jetify_include_list_test//:com_google_guava_guava", - "@jetify_include_list_test//:com_android_support_appcompat_v7", "@jetify_include_list_test//:com_android_support_appcompat_v7_28_0_0", "@jetify_include_list_test//:jetified_com_android_support_appcompat_v7", diff --git a/tests/unit/jetifier/jetifier_test.bzl b/tests/unit/jetifier/jetifier_test.bzl index 8bd507c84..a89f53b85 100644 --- a/tests/unit/jetifier/jetifier_test.bzl +++ b/tests/unit/jetifier/jetifier_test.bzl @@ -17,7 +17,7 @@ def _jetify_artifact_dependencies_returns_original_test(ctx): asserts.equals( env, ["mygroup:myartifact:myversion"], - jetify_artifact_dependencies(["mygroup:myartifact:myversion"]) + jetify_artifact_dependencies(["mygroup:myartifact:myversion"]), ) return unittest.end(env) @@ -28,7 +28,7 @@ def _jetify_artifact_dependencies_returns_jetified_test(ctx): asserts.equals( env, ["androidx.multidex:multidex:2.0.0"], - jetify_artifact_dependencies(["com.android.support:multidex:1.0.3"]) + jetify_artifact_dependencies(["com.android.support:multidex:1.0.3"]), ) return unittest.end(env) @@ -56,7 +56,6 @@ def _jetify_maven_coord_finds_match_test(ctx): jetify_maven_coord_finds_match_test = add_test(_jetify_maven_coord_finds_match_test) - def jetifier_test_suite(): unittest.suite( "jetifier_tests", diff --git a/third_party/bazel_json/lib/json_parser.bzl b/third_party/bazel_json/lib/json_parser.bzl index 7ebfaafe9..503870bd8 100644 --- a/third_party/bazel_json/lib/json_parser.bzl +++ b/third_party/bazel_json/lib/json_parser.bzl @@ -32,87 +32,87 @@ def _enumify_iterable(iterable, enum_dict): enum_dict[t] = i return enum_dict -__ = -1 # Alias for the invalid class +__ = -1 # Alias for the invalid class _TOKEN_CLASSES = _enumify_iterable(iterable = [ - 'C_SPACE', # space - 'C_WHITE', # other whitespace - 'C_LCURB', # { - 'C_RCURB', # } - 'C_LSQRB', # [ - 'C_RSQRB', # ] - 'C_COLON', # : - 'C_COMMA', # , - 'C_QUOTE', # " - 'C_BACKS', # \ - 'C_SLASH', # / - 'C_PLUS', # + - 'C_MINUS', # - - 'C_POINT', # . - 'C_ZERO', # 0 - 'C_DIGIT', # 123456789 - 'C_LOW_A', # a - 'C_LOW_B', # b - 'C_LOW_C', # c - 'C_LOW_D', # d - 'C_LOW_E', # e - 'C_LOW_F', # f - 'C_LOW_L', # l - 'C_LOW_N', # n - 'C_LOW_R', # r - 'C_LOW_S', # s - 'C_LOW_T', # t - 'C_LOW_U', # u - 'C_ABCDF', # ABCDF - 'C_E', # E - 'C_ETC', # everything else -], enum_dict = {'__' : __}) + "C_SPACE", # space + "C_WHITE", # other whitespace + "C_LCURB", # { + "C_RCURB", # } + "C_LSQRB", # [ + "C_RSQRB", # ] + "C_COLON", # : + "C_COMMA", # , + "C_QUOTE", # " + "C_BACKS", # \ + "C_SLASH", # / + "C_PLUS", # + + "C_MINUS", # - + "C_POINT", # . + "C_ZERO", # 0 + "C_DIGIT", # 123456789 + "C_LOW_A", # a + "C_LOW_B", # b + "C_LOW_C", # c + "C_LOW_D", # d + "C_LOW_E", # e + "C_LOW_F", # f + "C_LOW_L", # l + "C_LOW_N", # n + "C_LOW_R", # r + "C_LOW_S", # s + "C_LOW_T", # t + "C_LOW_U", # u + "C_ABCDF", # ABCDF + "C_E", # E + "C_ETC", # everything else +], enum_dict = {"__": __}) _STATE_MAP = { - 'GO' : 'start', - 'OK' : 'ok', - 'OB' : 'object', - 'KE' : 'key', - 'CO' : 'colon', - 'VA' : 'value', - 'AR' : 'array', - 'ST' : 'string', - 'ES' : 'escape', - 'U1' : 'u1', - 'U2' : 'u2', - 'U3' : 'u3', - 'U4' : 'u4', - 'MI' : 'minus', - 'ZE' : 'zero', - 'IN' : 'integer', - 'FR' : 'fraction', - 'E1' : 'e', - 'E2' : 'ex', - 'E3' : 'exp', - 'T1' : 'tr', - 'T2' : 'tru', - 'T3' : 'true', - 'F1' : 'fa', - 'F2' : 'fal', - 'F3' : 'fals', - 'F4' : 'false', - 'N1' : 'nu', - 'N2' : 'nul', - 'N3' : 'null', + "GO": "start", + "OK": "ok", + "OB": "object", + "KE": "key", + "CO": "colon", + "VA": "value", + "AR": "array", + "ST": "string", + "ES": "escape", + "U1": "u1", + "U2": "u2", + "U3": "u3", + "U4": "u4", + "MI": "minus", + "ZE": "zero", + "IN": "integer", + "FR": "fraction", + "E1": "e", + "E2": "ex", + "E3": "exp", + "T1": "tr", + "T2": "tru", + "T3": "true", + "F1": "fa", + "F2": "fal", + "F3": "fals", + "F4": "false", + "N1": "nu", + "N2": "nul", + "N3": "null", } _STATES = _enumify_iterable(iterable = _STATE_MAP.keys(), enum_dict = {}) -_S = _STATES # A short alias +_S = _STATES # A short alias # Tread some states as another for tokenizing. This is a hack to avoid # introducing new modes for parsing things like escaped string, # negative numbers, exponents, floats, etc... _TOKENIZER_STATE = { - _S["ES"] : _S["ST"], - _S["MI"] : _S["IN"], - _S["FR"] : _S["IN"], - _S["E1"] : _S["IN"], - _S["E2"] : _S["IN"], - _S["E3"] : _S["IN"], + _S["ES"]: _S["ST"], + _S["MI"]: _S["IN"], + _S["FR"]: _S["IN"], + _S["E1"]: _S["IN"], + _S["E2"]: _S["IN"], + _S["E3"]: _S["IN"], } _STATE_NAMES = _STATE_MAP.values() @@ -120,11 +120,11 @@ _STATE_NAMES = _STATE_MAP.values() # Used for debugging and reduction hook names _MODE_NAMES = [ - 'EMPTY', - 'ARRAY', - 'OBJECT', - 'ENTRY_KEY', - 'ENTRY_VALUE', + "EMPTY", + "ARRAY", + "OBJECT", + "ENTRY_KEY", + "ENTRY_VALUE", ] _MODES = _enumify_iterable(iterable = _MODE_NAMES, enum_dict = {}) @@ -141,24 +141,106 @@ _ASCII_CODEPOINT_MAP = { # "\b" : 8, "\t" : 9, "\n" : 10, "\v" : 11, "\f" : 12, "\r" : 13, "\x0E" : 14, "\x0F" : 15, # "\x10" : 16, "\x11" : 17, "\x12" : 18, "\x13" : 19, "\x14" : 20, "\x15" : 21, "\x16" : 22, "\x17" : 23, # "\x18" : 24, "\x19" : 25, "\x1A" : 26, "\e" : 27, "\x1C" : 28, "\x1D" : 29, "\x1E" : 30, "\x1F" : 31, - "\t" : 9, "\n" : 10, "\r" : 13, - - " " : 32, "!" : 33, "\"" : 34, "#" : 35, "$" : 36, "%" : 37, "&" : 38, "'" : 39, - "(" : 40, ")" : 41, "*" : 42, "+" : 43, "," : 44, "-" : 45, "." : 46, "/" : 47, - "0" : 48, "1" : 49, "2" : 50, "3" : 51, "4" : 52, "5" : 53, "6" : 54, "7" : 55, - "8" : 56, "9" : 57, ":" : 58, ";" : 59, "<" : 60, "=" : 61, ">" : 62, "?" : 63, - - "@" : 64, "A" : 65, "B" : 66, "C" : 67, "D" : 68, "E" : 69, "F" : 70, "G" : 71, - "H" : 72, "I" : 73, "J" : 74, "K" : 75, "L" : 76, "M" : 77, "N" : 78, "O" : 79, - "P" : 80, "Q" : 81, "R" : 82, "S" : 83, "T" : 84, "U" : 85, "V" : 86, "W" : 87, - "X" : 88, "Y" : 89, "Z" : 90, "[" : 91, "\\" : 92, "]" : 93, "^" : 94, "_" : 95, - - "`" : 96, "a" : 97, "b" : 98, "c" : 99, "d" : 100, "e" : 101, "f" : 102, "g" : 103, - "h" : 104, "i" : 105, "j" : 106, "k" : 107, "l" : 108, "m" : 109, "n" : 110, "o" : 111, - "p" : 112, "q" : 113, "r" : 114, "s" : 115, "t" : 116, "u" : 117, "v" : 118, "w" : 119, + "\t": 9, + "\n": 10, + "\r": 13, + " ": 32, + "!": 33, + "\"": 34, + "#": 35, + "$": 36, + "%": 37, + "&": 38, + "'": 39, + "(": 40, + ")": 41, + "*": 42, + "+": 43, + ",": 44, + "-": 45, + ".": 46, + "/": 47, + "0": 48, + "1": 49, + "2": 50, + "3": 51, + "4": 52, + "5": 53, + "6": 54, + "7": 55, + "8": 56, + "9": 57, + ":": 58, + ";": 59, + "<": 60, + "=": 61, + ">": 62, + "?": 63, + "@": 64, + "A": 65, + "B": 66, + "C": 67, + "D": 68, + "E": 69, + "F": 70, + "G": 71, + "H": 72, + "I": 73, + "J": 74, + "K": 75, + "L": 76, + "M": 77, + "N": 78, + "O": 79, + "P": 80, + "Q": 81, + "R": 82, + "S": 83, + "T": 84, + "U": 85, + "V": 86, + "W": 87, + "X": 88, + "Y": 89, + "Z": 90, + "[": 91, + "\\": 92, + "]": 93, + "^": 94, + "_": 95, + "`": 96, + "a": 97, + "b": 98, + "c": 99, + "d": 100, + "e": 101, + "f": 102, + "g": 103, + "h": 104, + "i": 105, + "j": 106, + "k": 107, + "l": 108, + "m": 109, + "n": 110, + "o": 111, + "p": 112, + "q": 113, + "r": 114, + "s": 115, + "t": 116, + "u": 117, + "v": 118, + "w": 119, # Commented out for the same reason as above, given the backspace code, \x7F # "x" : 120, "y" : 121, "z" : 122, "{" : 123, "|" : 124, "}" : 125, "~" : 126, "\x7F" : 127, - "x" : 120, "y" : 121, "z" : 122, "{" : 123, "|" : 124, "}" : 125, "~" : 126, + "x": 120, + "y": 121, + "z": 122, + "{": 123, + "|": 124, + "}": 125, + "~": 126, } # This array maps the 128 ASCII characters into character classes. @@ -171,79 +253,187 @@ def _create_ascii_mappings(positioned_token_list): return ascii_mappings _ASCII_CLASS_LIST = _create_ascii_mappings(positioned_token_list = [ - '__', '__', '__', '__', '__', '__', '__', '__', - '__', 'C_WHITE', 'C_WHITE', '__', '__', 'C_WHITE', '__', '__', - '__', '__', '__', '__', '__', '__', '__', '__', - '__', '__', '__', '__', '__', '__', '__', '__', - - 'C_SPACE', 'C_ETC', 'C_QUOTE', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', - 'C_ETC', 'C_ETC', 'C_ETC', 'C_PLUS', 'C_COMMA', 'C_MINUS', 'C_POINT', 'C_SLASH', - 'C_ZERO', 'C_DIGIT', 'C_DIGIT', 'C_DIGIT', 'C_DIGIT', 'C_DIGIT', 'C_DIGIT', 'C_DIGIT', - 'C_DIGIT', 'C_DIGIT', 'C_COLON', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', - - 'C_ETC', 'C_ABCDF', 'C_ABCDF', 'C_ABCDF', 'C_ABCDF', 'C_E', 'C_ABCDF', 'C_ETC', - 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', - 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', - 'C_ETC', 'C_ETC', 'C_ETC', 'C_LSQRB', 'C_BACKS', 'C_RSQRB', 'C_ETC', 'C_ETC', - - 'C_ETC', 'C_LOW_A', 'C_LOW_B', 'C_LOW_C', 'C_LOW_D', 'C_LOW_E', 'C_LOW_F', 'C_ETC', - 'C_ETC', 'C_ETC', 'C_ETC', 'C_ETC', 'C_LOW_L', 'C_ETC', 'C_LOW_N', 'C_ETC', - 'C_ETC', 'C_ETC', 'C_LOW_R', 'C_LOW_S', 'C_LOW_T', 'C_LOW_U', 'C_ETC', 'C_ETC', - 'C_ETC', 'C_ETC', 'C_ETC', 'C_LCURB', 'C_ETC', 'C_RCURB', 'C_ETC', 'C_ETC' + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "C_WHITE", + "C_WHITE", + "__", + "__", + "C_WHITE", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "__", + "C_SPACE", + "C_ETC", + "C_QUOTE", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_PLUS", + "C_COMMA", + "C_MINUS", + "C_POINT", + "C_SLASH", + "C_ZERO", + "C_DIGIT", + "C_DIGIT", + "C_DIGIT", + "C_DIGIT", + "C_DIGIT", + "C_DIGIT", + "C_DIGIT", + "C_DIGIT", + "C_DIGIT", + "C_COLON", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ABCDF", + "C_ABCDF", + "C_ABCDF", + "C_ABCDF", + "C_E", + "C_ABCDF", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_LSQRB", + "C_BACKS", + "C_RSQRB", + "C_ETC", + "C_ETC", + "C_ETC", + "C_LOW_A", + "C_LOW_B", + "C_LOW_C", + "C_LOW_D", + "C_LOW_E", + "C_LOW_F", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_LOW_L", + "C_ETC", + "C_LOW_N", + "C_ETC", + "C_ETC", + "C_ETC", + "C_LOW_R", + "C_LOW_S", + "C_LOW_T", + "C_LOW_U", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_ETC", + "C_LCURB", + "C_ETC", + "C_RCURB", + "C_ETC", + "C_ETC", ]) _STATE_TRANSITION_TABLE = [ -# The state transition table takes the current state and the current symbol, -# and returns either a new state or an action. An action is represented as a -# negative number. A JSON text is accepted if at the end of the text the -# state is OK and if the mode is MODE_EMPTY. -# -# See the table at http://www.json.org/JSON_checker/JSON_checker.c for better -# readability. -# -# This one has been modified to simplify reductions. -# -# white 1-9 ABCDF etc -# space | { } [ ] : , " \ / + - . 0 | a b c d e f l n r s t u | E | - [_S['GO'],_S['GO'],-6,__,-5,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], # start GO - [_S['OK'],_S['OK'],__,-8,__,-7,__,-3,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], # ok OK - [_S['OB'],_S['OB'],__,-9,__,__,__,__,_S['ST'],__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], # object OB - [_S['KE'],_S['KE'],__,-9,__,__,__,__,-4,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], # key KE - [_S['CO'],_S['CO'],__,__,__,__,-2,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], # colon CO - [_S['VA'],_S['VA'],-6,__,-5,__,__,__,_S['ST'],__,__,__,_S['MI'],__,_S['ZE'],_S['IN'],__,__,__,__,__,_S['F1'],__,_S['N1'],__,__,_S['T1'],__,__,__,__], # value VA - [_S['AR'],_S['AR'],-6,__,-5,-7,__,__,_S['ST'],__,__,__,_S['MI'],__,_S['ZE'],_S['IN'],__,__,__,__,__,_S['F1'],__,_S['N1'],__,__,_S['T1'],__,__,__,__], # array AR - [_S['ST'],__,_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],-4,_S['ES'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST']], # string ST - [__,__,__,__,__,__,__,__,_S['ST'],_S['ST'],_S['ST'],__,__,__,__,__,__,_S['ST'],__,__,__,_S['ST'],__,_S['ST'],_S['ST'],__,_S['ST'],_S['U1'],__,__,__], # escape ES - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['U2'],_S['U2'],_S['U2'],_S['U2'],_S['U2'],_S['U2'],_S['U2'],_S['U2'],__,__,__,__,__,__,_S['U2'],_S['U2'],__], # u1 U1 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['U3'],_S['U3'],_S['U3'],_S['U3'],_S['U3'],_S['U3'],_S['U3'],_S['U3'],__,__,__,__,__,__,_S['U3'],_S['U3'],__], # u2 U2 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['U4'],_S['U4'],_S['U4'],_S['U4'],_S['U4'],_S['U4'],_S['U4'],_S['U4'],__,__,__,__,__,__,_S['U4'],_S['U4'],__], # u3 U3 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],_S['ST'],__,__,__,__,__,__,_S['ST'],_S['ST'],__], # u4 U4 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['ZE'],_S['IN'],__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], # minus MI - [_S['OK'],_S['OK'],__,-8,__,-7,__,-3,__,__,__,__,__,_S['FR'],__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], # zero ZE - [_S['OK'],_S['OK'],__,-8,__,-7,__,-3,__,__,__,__,__,_S['FR'],_S['IN'],_S['IN'],__,__,__,__,_S['E1'],__,__,__,__,__,__,__,__,_S['E1'],__], # int IN - [_S['OK'],_S['OK'],__,-8,__,-7,__,-3,__,__,__,__,__,__,_S['FR'],_S['FR'],__,__,__,__,_S['E1'],__,__,__,__,__,__,__,__,_S['E1'],__], # frac FR - [__,__,__,__,__,__,__,__,__,__,__,_S['E2'],_S['E2'],__,_S['E3'],_S['E3'],__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], # e E1 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['E3'],_S['E3'],__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], # ex E2 - [_S['OK'],_S['OK'],__,-8,__,-7,__,-3,__,__,__,__,__,__,_S['E3'],_S['E3'],__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], # exp E3 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['T2'],__,__,__,__,__,__], # tr T1 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['T3'],__,__,__], # tru T2 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['OK'],__,__,__,__,__,__,__,__,__,__], # true T3 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['F2'],__,__,__,__,__,__,__,__,__,__,__,__,__,__], # fa F1 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['F3'],__,__,__,__,__,__,__,__], # fal F2 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['F4'],__,__,__,__,__], # fals F3 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['OK'],__,__,__,__,__,__,__,__,__,__], # false F4 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['N2'],__,__,__], # nu N1 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['N3'],__,__,__,__,__,__,__,__], # nul N2 - [__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,_S['OK'],__,__,__,__,__,__,__,__], # null N3 + # The state transition table takes the current state and the current symbol, + # and returns either a new state or an action. An action is represented as a + # negative number. A JSON text is accepted if at the end of the text the + # state is OK and if the mode is MODE_EMPTY. + # + # See the table at http://www.json.org/JSON_checker/JSON_checker.c for better + # readability. + # + # This one has been modified to simplify reductions. + # + # white 1-9 ABCDF etc + # space | { } [ ] : , " \ / + - . 0 | a b c d e f l n r s t u | E | + [_S["GO"], _S["GO"], -6, __, -5, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], # start GO + [_S["OK"], _S["OK"], __, -8, __, -7, __, -3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], # ok OK + [_S["OB"], _S["OB"], __, -9, __, __, __, __, _S["ST"], __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], # object OB + [_S["KE"], _S["KE"], __, -9, __, __, __, __, -4, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], # key KE + [_S["CO"], _S["CO"], __, __, __, __, -2, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], # colon CO + [_S["VA"], _S["VA"], -6, __, -5, __, __, __, _S["ST"], __, __, __, _S["MI"], __, _S["ZE"], _S["IN"], __, __, __, __, __, _S["F1"], __, _S["N1"], __, __, _S["T1"], __, __, __, __], # value VA + [_S["AR"], _S["AR"], -6, __, -5, -7, __, __, _S["ST"], __, __, __, _S["MI"], __, _S["ZE"], _S["IN"], __, __, __, __, __, _S["F1"], __, _S["N1"], __, __, _S["T1"], __, __, __, __], # array AR + [_S["ST"], __, _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], -4, _S["ES"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"]], # string ST + [__, __, __, __, __, __, __, __, _S["ST"], _S["ST"], _S["ST"], __, __, __, __, __, __, _S["ST"], __, __, __, _S["ST"], __, _S["ST"], _S["ST"], __, _S["ST"], _S["U1"], __, __, __], # escape ES + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["U2"], _S["U2"], _S["U2"], _S["U2"], _S["U2"], _S["U2"], _S["U2"], _S["U2"], __, __, __, __, __, __, _S["U2"], _S["U2"], __], # u1 U1 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["U3"], _S["U3"], _S["U3"], _S["U3"], _S["U3"], _S["U3"], _S["U3"], _S["U3"], __, __, __, __, __, __, _S["U3"], _S["U3"], __], # u2 U2 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["U4"], _S["U4"], _S["U4"], _S["U4"], _S["U4"], _S["U4"], _S["U4"], _S["U4"], __, __, __, __, __, __, _S["U4"], _S["U4"], __], # u3 U3 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], _S["ST"], __, __, __, __, __, __, _S["ST"], _S["ST"], __], # u4 U4 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["ZE"], _S["IN"], __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], # minus MI + [_S["OK"], _S["OK"], __, -8, __, -7, __, -3, __, __, __, __, __, _S["FR"], __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], # zero ZE + [_S["OK"], _S["OK"], __, -8, __, -7, __, -3, __, __, __, __, __, _S["FR"], _S["IN"], _S["IN"], __, __, __, __, _S["E1"], __, __, __, __, __, __, __, __, _S["E1"], __], # int IN + [_S["OK"], _S["OK"], __, -8, __, -7, __, -3, __, __, __, __, __, __, _S["FR"], _S["FR"], __, __, __, __, _S["E1"], __, __, __, __, __, __, __, __, _S["E1"], __], # frac FR + [__, __, __, __, __, __, __, __, __, __, __, _S["E2"], _S["E2"], __, _S["E3"], _S["E3"], __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], # e E1 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["E3"], _S["E3"], __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], # ex E2 + [_S["OK"], _S["OK"], __, -8, __, -7, __, -3, __, __, __, __, __, __, _S["E3"], _S["E3"], __, __, __, __, __, __, __, __, __, __, __, __, __, __, __], # exp E3 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["T2"], __, __, __, __, __, __], # tr T1 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["T3"], __, __, __], # tru T2 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["OK"], __, __, __, __, __, __, __, __, __, __], # true T3 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["F2"], __, __, __, __, __, __, __, __, __, __, __, __, __, __], # fa F1 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["F3"], __, __, __, __, __, __, __, __], # fal F2 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["F4"], __, __, __, __, __], # fals F3 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["OK"], __, __, __, __, __, __, __, __, __, __], # false F4 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["N2"], __, __, __], # nu N1 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["N3"], __, __, __, __, __, __, __, __], # nul N2 + [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, _S["OK"], __, __, __, __, __, __, __, __], # null N3 ] - _MAX_DEPTH = 20 _DEBUG = False def _reject(checker, reason = "unknown reason"): if (checker["rejected"]): - return False + return False checker["rejected"] = True checker["rejected_reason"] = reason @@ -251,7 +441,6 @@ def _reject(checker, reason = "unknown reason"): fail("failed to parse JSON: %s" % reason) return False - def _push(checker, mode): checker["top"] += 1 if (checker["top"] > checker["max_depth"]): @@ -263,7 +452,6 @@ def _push(checker, mode): if (checker["_DEBUG"]): print("push mode: %s" % [_MODE_NAMES[m] for m in checker["mode_stack"]]) - def _pop(checker, mode): top = checker["top"] if (top < 0): @@ -271,7 +459,8 @@ def _pop(checker, mode): elif (not _peek_mode(checker) == mode): return _reject( checker, - "cannot pop unexpected mode %s expected %s" % (mode, checker["mode_stack"][top])) + "cannot pop unexpected mode %s expected %s" % (mode, checker["mode_stack"][top]), + ) if (checker["_DEBUG"]): print("reducing " + _MODE_NAMES[mode]) @@ -287,7 +476,6 @@ def _pop(checker, mode): print("after pop token stack: %s" % checker["reduction_stack"]) print("pop mode: %s" % [_MODE_NAMES[m] for m in checker["mode_stack"]]) - def _set_state(checker, state): if (_get_tokenizer_state(state) != _get_tokenizer_state_from_checker(checker)): _tokenize(checker) @@ -296,32 +484,26 @@ def _set_state(checker, state): print("set_state: %s" % _STATE_NAMES[state]) checker["state"] = state - def _get_state(checker): return checker["state"] - def _get_tokenizer_state_from_checker(checker): return _get_tokenizer_state(checker["state"]) - def _get_tokenizer_state(state): if state in _TOKENIZER_STATE: state = _TOKENIZER_STATE[state] return state - def _add_next_char_to_state(checker, next_char): if (checker["state_chars"] == None): checker["state_chars"] = "" checker["state_chars"] += next_char - def _get_reduction_list(checker): top = checker["top"] return checker["reduction_stack"][top] - def _tokenize(checker): if (checker["state_chars"] == None): return @@ -336,13 +518,12 @@ def _tokenize(checker): if (checker["_DEBUG"]): print("tokenizing state '%s' with chars '%s'" % (state_name, chars)) _get_reduction_list(checker).append({ - "mode" : mode_name, - "state" : state_name, - "reduction" : token + "mode": mode_name, + "state": state_name, + "reduction": token, }) - else: - if (checker["_DEBUG"]): - print("no tokenizer for state '%s' with chars '%s'" % (state_name, chars)) + elif (checker["_DEBUG"]): + print("no tokenizer for state '%s' with chars '%s'" % (state_name, chars)) checker["state_chars"] = None @@ -362,7 +543,6 @@ def _reduce(checker): print("no reducer found for: %s" % (reducer_name)) return upstream_reductions - if (checker["_DEBUG"]): print("reduce_%s: %s" % (reducer_name, upstream_reductions)) reduction = checker["reduction_hooks"][reducer_name](upstream_reductions) @@ -370,17 +550,15 @@ def _reduce(checker): if (checker["_DEBUG"]): print("_reduce to: %s" % reduction) return { - "mode" : mode_name, - "state" : state_name, - "reduction": reduction + "mode": mode_name, + "state": state_name, + "reduction": reduction, } - def _peek_mode(checker): top = checker["top"] return checker["mode_stack"][top] - def _handle_next_char(checker, json_string, char_index): if (checker["rejected"]): return False @@ -398,11 +576,14 @@ def _handle_next_char(checker, json_string, char_index): return _reject( checker, "unable to map character: %s (%d/%d)" % - (next_json_char, char_index, len(json_string) - 1)) + (next_json_char, char_index, len(json_string) - 1), + ) else: - print("trying to treat unknown char as C_ETC...", - "hoping for the best: char (%d/%d)" % (char_index, len(json_string) - 1)) - next_char = 127 # my hardcoded hack for C_ETC resolution + print( + "trying to treat unknown char as C_ETC...", + "hoping for the best: char (%d/%d)" % (char_index, len(json_string) - 1), + ) + next_char = 127 # my hardcoded hack for C_ETC resolution else: next_char = _ASCII_CODEPOINT_MAP[next_json_char] @@ -432,11 +613,11 @@ def _handle_next_char(checker, json_string, char_index): if (checker["_DEBUG"]): print("action: %s" % next_state) - if next_state == -9: # empty } + if next_state == -9: # empty } _pop(checker, _MODES["OBJECT"]) _set_state(checker, OK) - elif next_state == -8: # } + elif next_state == -8: # } current_mode = _peek_mode(checker) if current_mode == _MODES["ENTRY_VALUE"]: _pop(checker, _MODES["ENTRY_VALUE"]) @@ -444,19 +625,19 @@ def _handle_next_char(checker, json_string, char_index): _pop(checker, _MODES["OBJECT"]) _set_state(checker, OK) - elif next_state == -7: # ] + elif next_state == -7: # ] _pop(checker, _MODES["ARRAY"]) _set_state(checker, OK) - elif next_state == -6: # { + elif next_state == -6: # { _push(checker, _MODES["OBJECT"]) _set_state(checker, KE) - elif next_state == -5: # [ + elif next_state == -5: # [ _push(checker, _MODES["ARRAY"]) _set_state(checker, AR) - elif next_state == -4: # " + elif next_state == -4: # " current_mode = _peek_mode(checker) if current_mode == _MODES["OBJECT"]: _push(checker, _MODES["ENTRY_KEY"]) @@ -466,12 +647,12 @@ def _handle_next_char(checker, json_string, char_index): elif current_mode == _MODES["ENTRY_VALUE"]: _pop(checker, _MODES["ENTRY_VALUE"]) _set_state(checker, OK) - elif current_mode == _MODES["ARRAY"]: # or current_mode == _MODES["OBJECT"]: + elif current_mode == _MODES["ARRAY"]: # or current_mode == _MODES["OBJECT"]: _set_state(checker, OK) else: return _reject(checker, "invalid state transition from mode: %s" % current_mode) - elif next_state == -3: # , + elif next_state == -3: # , current_mode = _peek_mode(checker) if current_mode == _MODES["ENTRY_VALUE"]: @@ -487,7 +668,7 @@ def _handle_next_char(checker, json_string, char_index): else: return _reject(checker, "invalid state transition from mode: %s" % current_mode) - elif next_state == -2: # : + elif next_state == -2: # : current_mode = _peek_mode(checker) _pop(checker, _MODES["ENTRY_KEY"]) _push(checker, _MODES["ENTRY_VALUE"]) @@ -499,19 +680,18 @@ def _handle_next_char(checker, json_string, char_index): return _reject( checker, "Could not parse the input:\n\n%s...\n\n at:\n\n%s...\n" % - (json_string[char_index:char_index + 15], json_string[first_char_index:last_char_index].strip())) + (json_string[char_index:char_index + 15], json_string[first_char_index:last_char_index].strip()), + ) _add_next_char_to_state(checker, next_json_char) return checker["rejected"] - def _verify_valid(checker): return (checker["rejected"] == False and checker["state"] == _STATES["OK"] and _peek_mode(checker) == _MODES["EMPTY"]) - def _create_checker( max_depth = _MAX_DEPTH, debug = _DEBUG, @@ -525,16 +705,14 @@ def _create_checker( """ checker = { - "rejected" : False, - "rejected_reason" : None, - "max_depth" : max_depth, - - "mode_stack" : [], - "top" : -1, - "state" : _STATES["GO"], - "state_chars" : None, # Characters collected in the current state - - "reduction_stack" : [], + "rejected": False, + "rejected_reason": None, + "max_depth": max_depth, + "mode_stack": [], + "top": -1, + "state": _STATES["GO"], + "state_chars": None, # Characters collected in the current state + "reduction_stack": [], "reduction_hooks": reduction_hooks, "tokenizer_hooks": tokenizer_hooks, @@ -542,20 +720,18 @@ def _create_checker( # unicode characters at 2 separate chars. I /think/ this is # safe for the parse itself, but it probably just means that # the content will be f'd. - "hacky_treatment_unknown_chars_as_etc" : True, - "_DEBUG" : debug + "hacky_treatment_unknown_chars_as_etc": True, + "_DEBUG": debug, } _push(checker, _MODES["EMPTY"]) return checker - def _reduce_array(reductions): arr = [] for i in range(0, len(reductions)): arr.append(reductions[i]["reduction"]) return arr - def _reduce_object(reductions): obj = dict() for i in range(0, len(reductions) // 2): @@ -565,14 +741,13 @@ def _reduce_object(reductions): obj[key] = val return obj - def _reduce_literal(reductions): return reductions[0]["reduction"] - # https://docs.bazel.build/versions/master/skylark/lib/int.html _MAX_INT = 2147483647 _MIN_INT = -2147483647 + def _tokenize_int(collected_chars): # Drops precision due to no decimals in Skylark. # @@ -612,31 +787,25 @@ def _tokenize_int(collected_chars): return int(collected_chars) - def _tokenize_null(collected_chars): return None - def _tokenize_true(collected_chars): return True - def _tokenize_false(collected_chars): return False - def _tokenize_string(collected_chars): # Trim the leading " return collected_chars[1:len(collected_chars)] - def _print_reduction_stack(checker): print("final reduction stack: %s" % checker["reduction_stack"]) - def _json_parser(**kwargs): args = { - "max_depth" : kwargs.get("max_depth", _MAX_DEPTH), + "max_depth": kwargs.get("max_depth", _MAX_DEPTH), "debug": kwargs.get("debug", _DEBUG), } return _create_checker( @@ -648,19 +817,18 @@ def _json_parser(**kwargs): "false": _tokenize_false, }, reduction_hooks = { - "entry_key" : _reduce_literal, - "entry_value" : _reduce_literal, + "entry_key": _reduce_literal, + "entry_value": _reduce_literal, "object": _reduce_object, "array": _reduce_array, }, **args ) - def json_parse(json_string, fail_on_invalid = True, **kwargs): parser = _json_parser(**kwargs) - for i in range(0, len(json_string)): + for i in range(0, len(json_string)): _handle_next_char(parser, json_string = json_string, char_index = i) is_valid = _verify_valid(parser) diff --git a/third_party/bazel_json/lib/json_rules.bzl b/third_party/bazel_json/lib/json_rules.bzl index 39e60e10e..32e98fa21 100644 --- a/third_party/bazel_json/lib/json_rules.bzl +++ b/third_party/bazel_json/lib/json_rules.bzl @@ -1,7 +1,5 @@ # IGNORE THIS FILE... it was probably a bad idea.... - - # Skylark reference: # https://docs.bazel.build/versions/master/skylark/language.html # https://docs.bazel.build/versions/master/skylark/lib/globals.html @@ -50,21 +48,21 @@ _JSON_TYPE_PROVIDERS = [ def _create_json_type_null(ctx): return [ JsonValue(value_internal = None), - JsonNullType() + JsonNullType(), ] def _create_json_type_boolean(ctx): v = ctx.attr.boolean_value return [ JsonValue(value_internal = v), - JsonBooleanType(boolean_value = v) + JsonBooleanType(boolean_value = v), ] def _create_json_type_string(ctx): v = ctx.attr.string_value return [ JsonValue(value_internal = v), - JsonStringType(string_value = v) + JsonStringType(string_value = v), ] def _create_json_type_number(ctx): @@ -74,7 +72,7 @@ def _create_json_type_number(ctx): JsonNumberType( number_value = v[0], exponent = v[1], - ) + ), ] def _create_json_type_array(ctx): @@ -85,7 +83,7 @@ def _create_json_type_array(ctx): json_types.append(_extract_json_type_from_label(label)) return [ JsonValue(value_internal = values), - JsonArrayType(json_type_values = json_types) + JsonArrayType(json_type_values = json_types), ] def _create_json_type_object(ctx): @@ -98,7 +96,7 @@ def _create_json_type_object(ctx): json_type_map[json_key] = json_type return [ JsonValue(value_internal = value_map), - JsonObjectType(json_type_map = json_type_map) + JsonObjectType(json_type_map = json_type_map), ] def _extract_json_type_from_label(label): @@ -125,41 +123,41 @@ json_type_null = rule( json_type_boolean = rule( implementation = _create_json_type_boolean, attrs = { - "boolean_value" : attr.bool(), + "boolean_value": attr.bool(), }, ) json_type_string = rule( implementation = _create_json_type_string, attrs = { - "string_value" : attr.string(), + "string_value": attr.string(), }, ) json_type_number = rule( implementation = _create_json_type_number, attrs = { - "number_value" : attr.int(), - "exponent" : attr.int(), + "number_value": attr.int(), + "exponent": attr.int(), }, ) json_type_array = rule( implementation = _create_json_type_array, attrs = { - "array_values" : attr.label_list( - providers = _JSON_TYPE_PROVIDERS - ) - } + "array_values": attr.label_list( + providers = _JSON_TYPE_PROVIDERS, + ), + }, ) json_type_object = rule( implementation = _create_json_type_object, attrs = { - "inverted_object_map" : attr.label_keyed_string_dict( - providers = _JSON_TYPE_PROVIDERS - ) - } + "inverted_object_map": attr.label_keyed_string_dict( + providers = _JSON_TYPE_PROVIDERS, + ), + }, ) def _json_printer_impl(ctx): @@ -169,10 +167,10 @@ def _json_printer_impl(ctx): json_printer = rule( implementation = _json_printer_impl, attrs = { - "json_values" : attr.label_list( - providers = [JsonValue] - ) - } + "json_values": attr.label_list( + providers = [JsonValue], + ), + }, ) def json(value): diff --git a/third_party/bazel_json/test/BUILD b/third_party/bazel_json/test/BUILD index 0755a77db..157b49605 100644 --- a/third_party/bazel_json/test/BUILD +++ b/third_party/bazel_json/test/BUILD @@ -1,29 +1,30 @@ -load("//lib:json_rules.bzl", - "json_type_null", - "json_type_boolean", - "json_type_string", - "json_type_number", - "json_type_array", - "json_type_object", - "json_printer", - "json", +load( + "//lib:json_rules.bzl", + "json", + "json_printer", + "json_type_array", + "json_type_boolean", + "json_type_null", + "json_type_number", + "json_type_object", + "json_type_string", ) - load(":json_parse_tests.bzl", "json_parse_test_suite") - load("//lib:json_parser.bzl", "json_parse") json_parse_test_suite() - - - # Default values json_type_null(name = "null_check") + json_type_boolean(name = "boolean_check") + json_type_string(name = "string_check") + json_type_number(name = "number_check") + json_type_array(name = "array_check") + json_type_object(name = "object_check") # Value checks @@ -31,6 +32,7 @@ json_type_boolean( name = "boolean_check_false", boolean_value = False, ) + json_type_boolean( name = "boolean_check_true", boolean_value = True, @@ -53,8 +55,8 @@ json_type_number( json_type_number( name = "number_check_fraction", - number_value = 77, exponent = -2, + number_value = 77, ) json_type_array( @@ -77,8 +79,8 @@ json_type_array( json_type_object( name = "object_check_empty", inverted_object_map = { - ":array_check_values" : "an_array", - } + ":array_check_values": "an_array", + }, ) json_printer( @@ -102,8 +104,11 @@ json("a string") json(66) -json(["a", "b"]) +json([ + "a", + "b", +]) json({ - "foo" : "bar" + "foo": "bar", }) diff --git a/third_party/bazel_json/test/json_parse_test_data.bzl b/third_party/bazel_json/test/json_parse_test_data.bzl index 81ec08a72..c24f056c0 100644 --- a/third_party/bazel_json/test/json_parse_test_data.bzl +++ b/third_party/bazel_json/test/json_parse_test_data.bzl @@ -3,7 +3,7 @@ def get_pkg_jsons(): return { - "rollup" : """{ + "rollup": """{ "name": "rollup", "version": "0.57.1", "description": "Next-generation ES6 module bundler", @@ -126,7 +126,7 @@ def get_pkg_jsons(): } } """, - "lodash" : """{ + "lodash": """{ "name": "lodash", "version": "4.17.4", "license": "MIT", @@ -191,7 +191,7 @@ def get_pkg_jsons(): } } """, - "express" : """{ + "express": """{ "name": "express", "description": "Fast, unopinionated, minimalist web framework", "version": "4.16.3", @@ -290,7 +290,7 @@ def get_pkg_jsons(): } } """, - "react" : """{ + "react": """{ "private": true, "version": "16.3.0-alpha.2", "workspaces": [ @@ -414,7 +414,7 @@ def get_pkg_jsons(): } } """, - "jquery" : """{ + "jquery": """{ "name": "jquery", "title": "jQuery", "description": "JavaScript library for DOM operations", @@ -523,7 +523,7 @@ def get_pkg_jsons(): } } """, - "q" : """{ + "q": """{ "name": "q", "version": "1.5.1", "description": "A library for promises (CommonJS/Promises/A,B,D)", @@ -602,7 +602,7 @@ def get_pkg_jsons(): """, # YUCK!!! NOTE the raw literal quoting, to avoid double # escaping the backslash escaped quotes below. - "rxjs" : r'''{ + "rxjs": r'''{ "name": "@reactivex/rxjs", "version": "6.0.0-beta.0", "description": "Reactive Extensions for modern JavaScript", @@ -865,7 +865,7 @@ def get_pkg_jsons(): "typings": "./dist/package/Rx.d.ts" } ''', - "aws-sdk-js" : """{ + "aws-sdk-js": """{ "name": "aws-sdk", "description": "AWS SDK for JavaScript", "version": "2.211.0", @@ -1008,8 +1008,7 @@ def get_pkg_jsons(): } } """, - - "webpack" : r"""{ + "webpack": r"""{ "name": "webpack", "version": "4.1.1", "author": "Tobias Koppers @sokra", @@ -1129,7 +1128,7 @@ def get_pkg_jsons(): } } """, - "commander" : """{ + "commander": """{ "name": "commander", "version": "2.15.0", "description": "the complete solution for node.js command-line programs", @@ -1166,5 +1165,5 @@ def get_pkg_jsons(): }, "typings": "typings/index.d.ts" } -""" -} +""", + } diff --git a/third_party/bazel_json/test/json_parse_tests.bzl b/third_party/bazel_json/test/json_parse_tests.bzl index 441fa413a..64a928285 100644 --- a/third_party/bazel_json/test/json_parse_tests.bzl +++ b/third_party/bazel_json/test/json_parse_tests.bzl @@ -2,15 +2,15 @@ load("@bazel_skylib//:lib.bzl", "asserts", "unittest") load("//lib:json_parser.bzl", "json_parse") load(":json_parse_test_data.bzl", "get_pkg_jsons") - def _valid_json_parse_test(ctx): env = unittest.begin(ctx) - asserts.equals(env, json_parse('[]'), []) + asserts.equals(env, json_parse("[]"), []) asserts.equals( env, json_parse('["x", "y", 22, [7], {"z": 1, "y": null}]'), - ["x", "y", 22, [7], {"z" : 1, "y" : None}]) + ["x", "y", 22, [7], {"z": 1, "y": None}], + ) asserts.equals( env, " ".join(reversed(json_parse('["plain", "the", "on", "mainly", "falls", "spain", "in", "rain", "the"]'))), @@ -19,29 +19,33 @@ def _valid_json_parse_test(ctx): asserts.equals( env, json_parse('["a", "b", "c", [1, 2, 3, [4], [5], [6]]]'), - ["a", "b", "c", [1, 2, 3, [4], [5], [6]]]) - asserts.equals(env, json_parse('{}'), {}) - asserts.equals(env, json_parse('{"a" : "b"}'), { "a" : "b" }) + ["a", "b", "c", [1, 2, 3, [4], [5], [6]]], + ) + asserts.equals(env, json_parse("{}"), {}) + asserts.equals(env, json_parse('{"a" : "b"}'), {"a": "b"}) asserts.equals( env, json_parse('{"key1": [1, 2, ["nested"]], "key2": "val2", "key3": {"nested_key1" : [null, true, false]}}'), { - "key1" : [1, 2, ["nested"]], - "key2" : "val2", - "key3" : { - "nested_key1" : [None, True, False] - } - }) + "key1": [1, 2, ["nested"]], + "key2": "val2", + "key3": { + "nested_key1": [None, True, False], + }, + }, + ) asserts.equals( env, json_parse('{"key:with:colon" : [{ "nested:with:colon" : true }]}'), - { "key:with:colon" : [{ "nested:with:colon" : True }] }, + {"key:with:colon": [{"nested:with:colon": True}]}, ) - expected_escapes = { "escaped" : r'\"quotes\"'} + expected_escapes = {"escaped": r'\"quotes\"'} + # Ughh... need to double escape the escape. asserts.equals(env, expected_escapes, json_parse('{"escaped" : "\\"quotes\\""}')) + # Unless it's a raw literal asserts.equals(env, expected_escapes, json_parse(r'{"escaped" : "\"quotes\""}')) asserts.equals( @@ -49,25 +53,24 @@ def _valid_json_parse_test(ctx): expected_escapes, json_parse(r''' {"escaped" : "\"quotes\""} -''')) +'''), + ) unittest.end(env) - def _scalar_types_test(ctx): env = unittest.begin(ctx) asserts.equals(env, json_parse('[""]')[0], "") asserts.equals(env, json_parse('["a string"]')[0], "a string") - asserts.equals(env, json_parse('[true]')[0], True) - asserts.equals(env, json_parse('[false]')[0], False) - asserts.equals(env, json_parse('[null]')[0], None) - asserts.equals(env, json_parse('[100]')[0], 100) - asserts.equals(env, json_parse('[-100]')[0], -100) + asserts.equals(env, json_parse("[true]")[0], True) + asserts.equals(env, json_parse("[false]")[0], False) + asserts.equals(env, json_parse("[null]")[0], None) + asserts.equals(env, json_parse("[100]")[0], 100) + asserts.equals(env, json_parse("[-100]")[0], -100) unittest.end(env) - def _number_parse_test(ctx): env = unittest.begin(ctx) @@ -75,36 +78,34 @@ def _number_parse_test(ctx): # https://tools.ietf.org/html/rfc8259#section-6 # "This specification allows implementations to set limits on the range # and precision of numbers accepted." - asserts.equals(env, 2147483647, json_parse('[99e100]')[0]) # MAX int - asserts.equals(env, -2147483647, json_parse('[-99e100]')[0]) # MIN int - asserts.equals(env, 0, json_parse('[99e-10]')[0]) - asserts.equals(env, 9, json_parse('[999e-2]')[0]) + asserts.equals(env, 2147483647, json_parse("[99e100]")[0]) # MAX int + asserts.equals(env, -2147483647, json_parse("[-99e100]")[0]) # MIN int + asserts.equals(env, 0, json_parse("[99e-10]")[0]) + asserts.equals(env, 9, json_parse("[999e-2]")[0]) - asserts.equals(env, 43, json_parse('[43.11]')[0]) - asserts.equals(env, 0, json_parse('[0.12345]')[0]) - asserts.equals(env, -120, json_parse('[-120.12345]')[0]) + asserts.equals(env, 43, json_parse("[43.11]")[0]) + asserts.equals(env, 0, json_parse("[0.12345]")[0]) + asserts.equals(env, -120, json_parse("[-120.12345]")[0]) unittest.end(env) - def _max_depth_json_parse_test(ctx): env = unittest.begin(ctx) asserts.equals( env, - json_parse('[[[[[[[[[[[[[[[[[[[[20]]]]]]]]]]]]]]]]]]]]'), - [[[[[[[[[[[[[[[[[[[[20]]]]]]]]]]]]]]]]]]]] + json_parse("[[[[[[[[[[[[[[[[[[[[20]]]]]]]]]]]]]]]]]]]]"), + [[[[[[[[[[[[[[[[[[[[20]]]]]]]]]]]]]]]]]]]], ) asserts.equals( env, json_parse('[[["too_deep"]]]', fail_on_invalid = False, max_depth = 2), - None + None, ) unittest.end(env) - def _package_json_parse_test(ctx): env = unittest.begin(ctx) @@ -123,7 +124,6 @@ def _package_json_parse_test(ctx): unittest.end(env) - valid_json_parse_test = unittest.make(_valid_json_parse_test) scalar_types_test = unittest.make(_scalar_types_test) number_parse_test = unittest.make(_number_parse_test) diff --git a/third_party/jetifier/BUILD b/third_party/jetifier/BUILD index 59b1f3094..8e07b1273 100644 --- a/third_party/jetifier/BUILD +++ b/third_party/jetifier/BUILD @@ -6,8 +6,8 @@ java_import( java_binary( name = "jetifier", main_class = "com.android.tools.build.jetifier.standalone.Main", + visibility = ["//visibility:public"], runtime_deps = [ - ":jetifier_jars" + ":jetifier_jars", ], - visibility = ["//visibility:public"], )